MySQL에서 DATETIME 타입 컬럼에 특정 일수를 더하려면 DATE_ADD() 함수를 사용하면 됩니다. 이번 글에서는 예제 테이블을 만들고, DATETIME 값에 날짜를 추가하는 전체 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 DATETIME 타입의 컬럼을 가진 테이블을 생성합니다.
mysql> create table DemoTable1871
(
ArrivalDate datetime
);
Query OK, 0 rows affected (0.00 sec)2. 샘플 데이터 삽입하기
INSERT 명령을 사용해 몇 개의 레코드를 입력합니다.
mysql> insert into DemoTable1871 values('2019-12-19 7:45:00');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1871 values('2018-11-10 12:00:00');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1871 values('2019-01-31');
Query OK, 1 row affected (0.00 sec)3. 저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select * from DemoTable1871;
위 쿼리는 다음과 같은 결과를 출력합니다.
+---------------------+ | ArrivalDate | +---------------------+ | 2019-12-19 07:45:00 | | 2018-11-10 12:00:00 | | 2019-01-31 00:00:00 | +---------------------+ 3 rows in set (0.00 sec)
4. DATE_ADD()로 날짜 추가하기
이제 UPDATE 문과 DATE_ADD() 함수를 함께 사용하여 ArrivalDate 컬럼의 모든 값에 6일을 더해 보겠습니다.
mysql> update DemoTable1871 set ArrivalDate=date_add(ArrivalDate, interval 6 day); Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
여기서 interval 6 day는 6일을 더한다는 의미입니다. 필요에 따라 숫자와 단위(day, month, year 등)를 자유롭게 변경할 수 있습니다.
5. 변경된 결과 확인하기
다시 한번 테이블을 조회하여 변경 사항을 확인합니다.
mysql> select * from DemoTable1871;
모든 날짜가 정확히 6일씩 증가한 것을 확인할 수 있습니다.
+---------------------+ | ArrivalDate | +---------------------+ | 2019-12-25 07:45:00 | | 2018-11-16 12:00:00 | | 2019-02-06 00:00:00 | +---------------------+ 3 rows in set (0.00 sec)
참고: DATE_SUB()로 날짜 빼기
반대로 날짜를 빼고 싶다면 DATE_SUB() 함수를 사용하거나, DATE_ADD()에 음수 간격을 지정하면 됩니다. 예를 들어 date_add(ArrivalDate, interval -6 day)처럼 작성하면 6일을 차감할 수 있습니다.