MySQL에서 저장된 날짜(datetime) 값에 45일을 더하고, 그 결과를 기존 열과 함께 새로운 열에 출력하려면 date_add() 함수를 사용하면 됩니다. date_add()는 지정한 날짜·시간 값에 원하는 간격(interval)만큼 더한 값을 반환하는 함수로, 날짜 계산에 매우 유용하게 활용됩니다.
1. 샘플 테이블 생성하기
먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.
mysql> create table DemoTable1930
(
DueTime datetime
);
Query OK, 0 rows affected (0.00 sec)2. 레코드 삽입하기
insert 명령을 사용하여 테이블에 날짜 데이터를 몇 개 삽입합니다.
mysql> insert into DemoTable1930 values('2017-10-21');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1930 values('2019-12-14');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1930 values('2018-11-26');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1930 values('2014-06-16');
Query OK, 1 row affected (0.00 sec)3. 전체 레코드 조회하기
select 문으로 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select * from DemoTable1930;
실행 결과는 다음과 같습니다.
+---------------------+ | DueTime | +---------------------+ | 2017-10-21 00:00:00 | | 2019-12-14 00:00:00 | | 2018-11-26 00:00:00 | | 2014-06-16 00:00:00 | +---------------------+ 4 rows in set (0.00 sec)
4. 45일을 더하는 쿼리 실행하기
이제 date_add() 함수를 사용하여 DueTime 값에 45일을 더하고, 별칭(as)을 지정해 새로운 열로 출력하는 쿼리입니다.
mysql> select DueTime,date_add(DueTime, interval 45 day) as ManyDays from DemoTable1930;
실행 결과는 다음과 같습니다.
+---------------------+---------------------+ | DueTime | ManyDays | +---------------------+---------------------+ | 2017-10-21 00:00:00 | 2017-12-05 00:00:00 | | 2019-12-14 00:00:00 | 2020-01-28 00:00:00 | | 2018-11-26 00:00:00 | 2019-01-10 00:00:00 | | 2014-06-16 00:00:00 | 2014-07-31 00:00:00 | +---------------------+---------------------+ 4 rows in set (0.00 sec)
위 결과에서 볼 수 있듯이, ManyDays라는 새로운 열에는 원래 날짜에서 정확히 45일이 더해진 값이 출력됩니다. 예를 들어 2017-10-21에 45일을 더하면 2017-12-05가 되고, 2019-12-14에 45일을 더하면 연도가 넘어간 2020-01-28이 됩니다. 이처럼 date_add() 함수는 월말·연말 경계를 자동으로 처리해 주기 때문에 마감일 계산 등 다양한 업무 로직에서 안정적으로 사용할 수 있습니다.