MySQL에서 특정 날짜나 현재 날짜에 원하는 일수를 더하려면 DATE_ADD() 함수를 사용하면 됩니다. 이 함수는 INTERVAL 키워드와 함께 사용하여 날짜에 일, 월, 년 등을 손쉽게 더할 수 있습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1994 ( ArrivalDate date ); Query OK, 0 rows affected (5.33 sec)
2. 데이터 삽입하기
INSERT 명령어를 사용해 몇 개의 레코드를 삽입합니다.
mysql> insert into DemoTable1994 values('2019-12-18');
Query OK, 1 row affected (0.47 sec)
mysql> insert into DemoTable1994 values('2019-12-19');
Query OK, 1 row affected (0.33 sec)
mysql> insert into DemoTable1994 values('2019-12-20');
Query OK, 1 row affected (0.49 sec)
mysql> insert into DemoTable1994 values('2019-12-25');
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable1994 values('2018-12-20');
Query OK, 1 row affected (1.42 sec)3. 저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select * from DemoTable1994;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-------------+ | ArrivalDate | +-------------+ | 2019-12-18 | | 2019-12-19 | | 2019-12-20 | | 2019-12-25 | | 2018-12-20 | +-------------+ 5 rows in set (0.00 sec)
4. 현재 날짜에 11일 더하는 쿼리
아래는 CURDATE()로 현재 날짜와 일치하는 레코드를 찾아, 해당 날짜에 11일을 더한 값을 함께 조회하는 쿼리입니다.
mysql> select ArrivalDate,date_add(ArrivalDate,interval 11 Day) from DemoTable1994 where ArrivalDate=curdate();
실행 결과는 다음과 같습니다.
+-------------+---------------------------------------+ | ArrivalDate | date_add(ArrivalDate,interval 11 Day) | +-------------+---------------------------------------+ | 2019-12-20 | 2019-12-31 | +-------------+---------------------------------------+ 1 row in set (0.00 sec)
결과를 보면 현재 날짜인 2019-12-20에 11일이 더해져 2019-12-31이 출력된 것을 확인할 수 있습니다.
참고: DATE_ADD() 함수 문법
DATE_ADD(날짜, INTERVAL 값 단위) 형식으로 사용하며, 단위는 DAY 외에도 MONTH, YEAR, HOUR, MINUTE 등을 지정할 수 있습니다. 또한 동일한 기능을 하는 ADDDATE() 함수도 있으므로 상황에 맞게 활용하시면 됩니다.