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

MySQL 테이블의 날짜 값에 30일 추가하는 방법

MySQL에서 테이블의 날짜 값에 30일을 더하려면 UPDATE 명령과 함께 ADDDATE() 함수를 사용하면 됩니다. 기본 문법은 다음과 같습니다.

UPDATE yourTableName
SET yourDateColumnName=ADDDATE(yourDateColumnName,INTERVAL 30 DAY);

위 문법을 실제로 이해하기 위해 예제 테이블을 하나 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table Add30DayDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> ShippingDate date,
-> PRIMARY KEY(ID)
-> );
Query OK, 0 rows affected (0.76 sec)

샘플 데이터 삽입

INSERT 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into Add30DayDemo(ShippingDate) values('2019-02-04');
Query OK, 1 row affected (0.20 sec)
mysql> insert into Add30DayDemo(ShippingDate) values('2018-11-15');
Query OK, 1 row affected (0.18 sec)
mysql> insert into Add30DayDemo(ShippingDate) values('2013-05-18');
Query OK, 1 row affected (0.15 sec)
mysql> insert into Add30DayDemo(ShippingDate) values('2017-08-25');
Query OK, 1 row affected (0.20 sec)
mysql> insert into Add30DayDemo(ShippingDate) values('2016-03-01');
Query OK, 1 row affected (0.12 sec)
mysql> insert into Add30DayDemo(ShippingDate) values('2015-09-03');
Query OK, 1 row affected (0.13 sec)

현재 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from Add30DayDemo;

실행 결과는 다음과 같습니다.

+----+--------------+
| Id | ShippingDate |
+----+--------------+
| 1 | 2019-02-04 |
| 2 | 2018-11-15 |
| 3 | 2013-05-18 |
| 4 | 2017-08-25 |
| 5 | 2016-03-01 |
| 6 | 2015-09-03 |
+----+--------------+
6 rows in set (0.00 sec)

ADDDATE()로 30일 추가하기

이제 UPDATE 문과 ADDDATE() 함수를 사용해 모든 배송일(ShippingDate)에 30일을 더하는 쿼리를 실행합니다.

mysql> update Add30DayDemo
-> SET ShippingDate=ADDDATE(ShippingDate,INTERVAL 30 DAY);
Query OK, 6 rows affected (0.44 sec)
Rows matched: 6 Changed: 6 Warnings: 0

업데이트가 완료되었으니 다시 한번 테이블 데이터를 확인해 보겠습니다.

mysql> select *from Add30DayDemo;

날짜가 30일씩 증가한 것을 확인할 수 있습니다.

+----+--------------+
| Id | ShippingDate |
+----+--------------+
| 1 | 2019-03-06 |
| 2 | 2018-12-15 |
| 3 | 2013-06-17 |
| 4 | 2017-09-24 |
| 5 | 2016-03-31 |
| 6 | 2015-10-03 |
+----+--------------+
6 rows in set (0.00 sec)

참고 사항

ADDDATE()는 DATE_ADD()와 동일하게 동작하며, INTERVAL 단위를 DAY 대신 MONTH, YEAR, HOUR 등으로 바꾸면 다양한 기간 연산이 가능합니다. 또한 특정 조건의 행만 업데이트하고 싶다면 WHERE 절을 추가하면 됩니다. 예를 들어 WHERE Id = 1을 붙이면 해당 레코드의 날짜만 변경됩니다.