MySQL DATE_ADD() 함수로 날짜 더하기
MySQL에서 DATETIME 또는 DATE 타입의 컬럼에 하루(또는 원하는 일수)를 더하려면 DATE_ADD() 함수를 사용하면 됩니다. 이 함수는 지정한 날짜 값에 특정 시간 간격을 더한 결과를 반환합니다.
기본 문법
SELECT DATE_ADD(yourColumnName, INTERVAL yourIntegerValue DAY) AS anyVariableName FROM yourTableName;
예제 테이블 생성
먼저 실습용 테이블을 만들어 보겠습니다.
mysql> create table AddOneDayDemo
-> (
-> YourDay datetime
-> );
Query OK, 0 rows affected (1.37 sec)
현재 날짜 데이터 삽입
다음으로 curdate() 함수를 사용해 현재 날짜를 테이블에 삽입합니다. curdate()는 현재 날짜를 반환하는 MySQL 내장 함수입니다.
mysql> insert into AddOneDayDemo values(curdate());
Query OK, 1 row affected (0.17 sec)
저장된 데이터 확인
SELECT 문으로 저장된 레코드를 조회해 보겠습니다.
mysql> select * from AddOneDayDemo;
조회 결과 현재 날짜가 정상적으로 저장된 것을 확인할 수 있습니다.
+---------------------+
| YourDay |
+---------------------+
| 2018-11-27 00:00:00 |
+---------------------+
1 row in set (0.00 sec)
DATE_ADD()로 하루 더하기
이제 저장된 날짜에 하루를 더하는 쿼리를 실행해 보겠습니다. INTERVAL 키워드 뒤에 더하고 싶은 값과 단위(day)를 지정하면 됩니다.
mysql> select date_add(YourDay, interval 1 day) as yourDayafteraddingoneday from AddOneDayDemo;
실행 결과는 다음과 같습니다.
+--------------------------+
| yourDayafteraddingoneday |
+--------------------------+
| 2018-11-28 00:00:00 |
+--------------------------+
1 row in set (0.00 sec)
결과 분석
위 출력 결과를 보면 기존 날짜인 2018-11-27에서 정확히 하루가 추가되어 2018-11-28이 반환된 것을 확인할 수 있습니다.
추가 팁: 다양한 시간 단위 활용하기
DATE_ADD() 함수는 'day' 외에도 다양한 단위를 지원합니다. 필요에 따라 아래와 같이 활용할 수 있습니다.
- HOUR – 시간 단위로 더하기
- MINUTE – 분 단위로 더하기
- MONTH – 월 단위로 더하기
- YEAR – 연도 단위로 더하기
예를 들어 한 달을 더하려면 DATE_ADD(YourDay, INTERVAL 1 MONTH), 5시간을 더하려면 DATE_ADD(YourDay, INTERVAL 5 HOUR)처럼 작성하면 됩니다. 반대로 날짜를 빼고 싶다면 DATE_SUB() 함수를 사용하거나 음수 값을 입력하면 됩니다.