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()를 사용해 날짜만 손쉽게 다룰 수 있습니다.