MySQL에서 DATETIME 형식의 값에 하루를 더하고 싶다면 DATE_ADD() 함수를 사용하면 됩니다. 이 함수는 날짜 및 시간 값에 원하는 간격(interval)을 더하거나 뺄 때 가장 널리 쓰이는 방법입니다.
DATE_ADD() 기본 문법
select date_add(now(), interval 1 day) as anyVariableName;
위 문법을 실제로 실행하여 DATETIME 값에 하루를 추가해 보겠습니다.
현재 시간에 하루 더하기 – now() 함수 활용
mysql> select date_add(now(), interval 1 day) as Adding1DayDemo;
실행 결과는 다음과 같습니다.
+---------------------+ | Adding1DayDemo | +---------------------+ | 2018-12-07 20:06:59 | +---------------------+ 1 row in set (0.00 sec)
현재 날짜와 시간에 정확히 하루가 더해진 것을 확인할 수 있습니다.
날짜에만 하루 더하기 – curdate() 함수 활용
시간 정보는 제외하고 날짜(date)에만 하루를 더하고 싶다면 curdate() 함수를 사용하면 됩니다.
mysql> select date_add(curdate(), interval 1 day) as Adding1DayDemo;
실행 결과는 다음과 같습니다.
+----------------+ | Adding1DayDemo | +----------------+ | 2018-12-07 | +----------------+ 1 row in set (0.00 sec)
실전 예제: 테이블 생성 후 하루 더하기
이제 테이블을 직접 만들고 날짜 값을 넣어서 실전처럼 연습해 보겠습니다.
1. 테이블 생성
mysql> create table AddOneday -> ( -> DueTime datetime -> ); Query OK, 0 rows affected (1.05 sec)
2. 데이터 삽입
now()와 curdate() 두 함수를 사용해 각각 레코드를 삽입합니다.
mysql> insert into AddOneday values(now()); Query OK, 1 row affected (0.22 sec) mysql> insert into AddOneday values(curdate()); Query OK, 1 row affected (0.53 sec)
3. 전체 레코드 조회
mysql> select * from AddOneday;
실행 결과는 다음과 같습니다.
+---------------------+ | DueTime | +---------------------+ | 2018-12-06 20:10:47 | | 2018-12-06 00:00:00 | +---------------------+ 2 rows in set (0.00 sec)
4. DATE_ADD()로 하루 추가하기
mysql> select date_add(DueTime, interval 1 day) as AddingOneDay from AddOneday;
모든 날짜 값에 하루가 더해진 최종 결과는 다음과 같습니다.
+---------------------+ | AddingOneDay | +---------------------+ | 2018-12-07 20:10:47 | | 2018-12-07 00:00:00 | +---------------------+ 2 rows in set (0.00 sec)
정리
MySQL에서 DATETIME 값에 하루를 추가하는 방법은 매우 간단합니다. 핵심은 DATE_ADD(날짜컬럼, INTERVAL 1 DAY) 형태로 사용하는 것이며, 상황에 따라 다음과 같이 구분해서 사용하면 됩니다.
- now(): 현재 날짜와 시간까지 모두 필요한 경우
- curdate(): 날짜만 필요하고 시간은 제외하고 싶은 경우
- 테이블 컬럼: 저장된 DATETIME 값을 기준으로 계산할 때
또한 INTERVAL 단위는 DAY 외에도 HOUR, MINUTE, MONTH, YEAR 등 다양하게 지정할 수 있으니, 날짜 계산이 필요한 쿼리 작성 시 적극적으로 활용해 보세요.