Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 DATE_ADD() 함수로 테이블의 날짜 데이터를 변경하는 방법

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 절을 추가하면 특정 조건에 맞는 행만 선택적으로 업데이트할 수 있으므로, 대량의 데이터를 다룰 때는 반드시 조건을 명확히 하는 것이 좋습니다.