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

MySQL에서 now()에 1일 더하기: interval과 date_add() 완벽 정리

MySQL에서 현재 날짜·시간에 1일 더하는 방법

now() + 1 day라는 표현은 말 그대로 현재 날짜와 시간에 하루를 더하겠다는 의미입니다. MySQL에서는 이 로직을 아래와 같이 간단하게 작성할 수 있습니다.

now() + interval 1 day;

또는 MySQL에서 제공하는 date_add() 함수를 사용해도 동일한 결과를 얻을 수 있습니다.

date_add(now(), interval 1 day);

SELECT 문으로 직접 확인하기

위 개념을 실제 SELECT 문으로 실행해 보겠습니다.

mysql> select now() + interval 1 day;

실행 결과, 현재 시간에서 하루가 증가된 값이 반환되는 것을 확인할 수 있습니다.

+-----------------------+
| now()+ interval 1 day |
+-----------------------+
| 2018-11-23 15:43:10   |
+-----------------------+
1 row in set (0.05 sec)

date_add() 함수 사용 예제

이번에는 date_add() 함수를 이용해 현재 날짜에 하루를 더하는 방법을 살펴보겠습니다.

mysql> select date_add(now(), interval 1 day);

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

+--------------------------------+
| date_add(now(),interval 1 day) |
+--------------------------------+
| 2018-11-23 15:45:43            |
+--------------------------------+
1 row in set (0.00 sec)

시간 없이 날짜만 표시하고 싶다면? curdate() 활용

날짜 연산 결과에서 시간 정보를 제외하고 날짜만 표시하고 싶다면 now() 대신 curdate()를 사용하면 됩니다.

curdate() + interval 1 day;

마찬가지로 date_add() 함수와 조합해서 사용할 수도 있습니다.

date_add(curdate(), interval 1 day);

curdate() + interval 1 day 데모

mysql> select curdate() + interval 1 day;

curdate()를 사용하면 시간 없이 하루가 증가된 날짜만 깔끔하게 출력됩니다.

+--------------------------+
| curdate()+interval 1 day |
+--------------------------+
| 2018-11-23               |
+--------------------------+
1 row in set (0.00 sec)

date_add(curdate(), ...) 데모

mysql> select date_add(curdate(), interval 1 day);

date_add() 함수 역시 동일하게 날짜만 반환합니다.

+------------------------------------+
| date_add(curdate(),interval 1 day) |
+------------------------------------+
| 2018-11-23                         |
+------------------------------------+
1 row in set (0.00 sec)

정리

MySQL에서 현재 날짜에 하루를 더하는 방법은 크게 두 가지입니다. 첫째, now() + interval 1 day처럼 산술 연산자와 interval 키워드를 조합하는 방식이고, 둘째, date_add(now(), interval 1 day)처럼 전용 함수를 사용하는 방식입니다. 두 방법 모두 결과는 같으므로 상황과 취향에 맞게 선택하면 됩니다. 또한 interval 단위는 day 외에도 month, year, hour, minute 등 다양하게 지정할 수 있어 응용 범위가 넓습니다. 시간 정보가 필요 없다면 now() 대신 curdate()를 사용해 날짜만 손쉽게 다룰 수 있습니다.