MySQL에서 저장된 날짜 값을 수정해야 하는 경우가 종종 있습니다. 예를 들어 배송 날짜에 특정 연도를 더하고 싶다면 UPDATE 문과 함께 DATE_ADD() 함수를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 날짜에 연도를 더하는 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 날짜 컬럼을 가진 테이블을 생성합니다.
mysql> create table DemoTable1984
(
ShippingDate date
);
Query OK, 0 rows affected (0.00 sec)2. 샘플 데이터 삽입하기
INSERT 문을 사용하여 몇 개의 날짜 레코드를 추가합니다.
mysql> insert into DemoTable1984 values('2014-01-11');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1984 values('2015-12-23');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1984 values('2017-10-31');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1984 values('2018-06-01');
Query OK, 1 row affected (0.00 sec)3. 현재 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select * from DemoTable1984;
실행 결과는 다음과 같습니다.
+--------------+ | ShippingDate | +--------------+ | 2014-01-11 | | 2015-12-23 | | 2017-10-31 | | 2018-06-01 | +--------------+ 4 rows in set (0.00 sec)
4. DATE_ADD()로 날짜 변경하기
이제 UPDATE 문과 DATE_ADD() 함수를 사용하여 모든 배송 날짜에 2년을 더해 보겠습니다. INTERVAL 키워드를 활용하면 연도뿐만 아니라 월(MONTH), 일(DAY) 등 다양한 단위로 날짜를 조정할 수 있습니다.
mysql> update DemoTable1984 set ShippingDate=date_add(ShippingDate,interval 2 year); Query OK, 4 rows affected (0.00 sec) Rows matched: 4 Changed: 4 Warnings: 0
5. 변경 결과 확인하기
다시 한번 테이블을 조회하여 결과를 확인합니다.
mysql> select * from DemoTable1984;
모든 날짜가 정확히 2년씩 증가한 것을 볼 수 있습니다.
+--------------+ | ShippingDate | +--------------+ | 2016-01-11 | | 2017-12-23 | | 2019-10-31 | | 2020-06-01 | +--------------+ 4 rows in set (0.00 sec)
마무리
이처럼 MySQL에서는 UPDATE 문과 DATE_ADD() 함수를 조합하면 기존 날짜 데이터를 손쉽게 수정할 수 있습니다. 만약 날짜를 빼고 싶다면 DATE_SUB() 함수를 사용하거나, DATE_ADD()에 음수 간격을 지정하면 됩니다. 또한 WHERE 절을 추가하면 특정 조건에 맞는 행만 선택적으로 업데이트할 수 있으므로, 대량의 데이터를 다룰 때는 반드시 조건을 명확히 하는 것이 좋습니다.