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

MySQL에서 현재 날짜·시간으로부터 30일 빼는 방법 – DATE_SUB() 함수 활용 가이드

MySQL에서 현재 날짜·시간으로 30일 빼기

MySQL에서 현재 날짜와 시간(datetime)으로부터 30일을 빼려면, 먼저 현재 날짜·시간 정보를 구한 뒤 DATE_SUB() 함수를 활용하면 됩니다. 현재 날짜·시간은 NOW() 함수로 간단하게 조회할 수 있습니다.

1. DATE_SUB() 함수 기본 문법

현재 날짜·시간에서 30일을 빼는 기본 문법은 다음과 같습니다.

DATE_SUB(NOW(),INTERVAL 30 DAY);

이 문법은 먼저 NOW()로 현재 날짜·시간을 계산한 후, 그 값에서 30일을 차감하는 방식으로 동작합니다.

2. 현재 날짜·시간 조회하기

먼저 NOW() 함수를 사용해 현재 날짜·시간을 확인해 보겠습니다.

mysql> select now();

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

+---------------------+
| now()               |
+---------------------+
| 2018-11-23 16:38:43 |
+---------------------+
1 row in set (0.00 sec)

3. DATE_SUB()로 30일 차감하기

이제 DATE_SUB() 함수를 사용해 현재 날짜·시간에서 30일을 빼보겠습니다.

mysql> select date_sub(now(),interval 30 day);

30일이 차감된 날짜와 시간이 출력됩니다.

+---------------------------------+
| date_sub(now(),interval 30 day) |
+---------------------------------+
| 2018-10-24 16:38:50             |
+---------------------------------+
1 row in set (0.00 sec)

4. 날짜(연·월·일)만 결과로 얻기

결과에서 시간 정보를 제외하고 날짜 값만 얻고 싶다면, NOW() 대신 CURDATE() 함수를 사용하면 됩니다. CURDATE()는 현재 날짜만 반환하는 함수입니다.

mysql> select date_sub(curdate(),interval 30 day);

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

+-------------------------------------+
| date_sub(curdate(),interval 30 day) |
+-------------------------------------+
| 2018-10-24                          |
+-------------------------------------+
1 row in set (0.00 sec)

참고: 더 간결한 표현식

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

SELECT NOW() - INTERVAL 30 DAY;

두 방식 모두 성능상 차이는 없으므로, 코드의 가독성에 따라 편한 방법을 선택해 사용하면 됩니다.