Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 현재 날짜·시간으로부터 10일을 빼는 방법 (DATE_SUB 함수 활용)

MySQL에서 현재 날짜와 시간으로부터 특정 일수를 빼야 하는 경우가 자주 발생합니다. 예를 들어 10일 전의 날짜를 조회하거나, 최근 10일 이내의 데이터를 필터링할 때 유용합니다. 이 글에서는 DATE_SUB() 함수를 사용해 현재 날짜·시간에서 10일을 빼는 방법을 단계별로 알아보겠습니다.

1단계: now() 함수로 현재 날짜·시간 확인하기

먼저 now() 함수를 사용하여 MySQL 서버의 현재 날짜와 시간을 확인합니다.

mysql> select now();

실행 결과는 다음과 같습니다.

+---------------------+
| now()               |
+---------------------+
| 2018-11-01 19:55:56 |
+---------------------+
1 row in set (0.00 sec)

2단계: DATE_SUB() 함수 문법 이해하기

DATE_SUB() 함수는 지정한 날짜에서 원하는 시간 간격(interval)만큼을 뺀 결과를 반환합니다. 10일을 빼는 기본 문법은 다음과 같습니다.

select DATE_SUB(now(), interval integer_value day);
  • now(): 기준이 되는 현재 날짜·시간
  • integer_value: 뺄 일수(정수)
  • day: 시간 단위(일 단위로 계산)

3단계: 현재 날짜·시간에서 10일 빼기

위 문법에 실제 값 10을 적용하면 다음과 같습니다.

mysql> select DATE_SUB(now(), interval 10 day);

실행 결과입니다.

+---------------------------------+
| DATE_SUB(now(),interval 10 day) |
+---------------------------------+
| 2018-10-22 19:56:07             |
+---------------------------------+
1 row in set (0.00 sec)

현재 날짜가 2018년 11월 1일이었으므로, 정확히 10일 전인 2018년 10월 22일이 반환된 것을 확인할 수 있습니다.

참고: 다른 표현 방식

DATE_SUB() 대신 산술 연산자를 사용해도 동일한 결과를 얻을 수 있습니다.

mysql> select now() - interval 10 day;

또한 날짜(연월일)만 필요하다면 CURDATE() 함수를 활용할 수 있습니다.

mysql> select DATE_SUB(CURDATE(), interval 10 day);

이처럼 DATE_SUB() 함수와 INTERVAL 구문을 조합하면 일(day)뿐 아니라 월(month), 년(year), 시간(hour) 등 다양한 단위로 날짜를 손쉽게 계산할 수 있습니다.