시간이 아닌 날짜만 변경하려면 MySQL INTERVAL 및 YEAR를 사용하십시오. 레코드를 업데이트할 것이므로 UPDATE를 사용하고 INTERVAL로 새 값을 설정합니다.
예제를 보고 테이블을 생성해 보겠습니다 −
mysql> create table DemoTable ( DueDate datetime ); Query OK, 0 rows affected (0.56 sec)
삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -
mysql> insert into DemoTable values('2017-08-12 10 :30 :45'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values('2015-09-21 12 :00 :00'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('2018-12-31 11 :45 :56'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values('2016-01-02 01 :23 :04'); Query OK, 1 row affected (0.14 sec)
select 문을 사용하여 테이블의 모든 레코드 표시 -
mysql> select *from DemoTable;
이것은 다음과 같은 출력을 생성합니다 -
+-----------------------+ | DueDate | +-----------------------+ | 2017-08-12 10 :30 :45 | | 2015-09-21 12 :00 :00 | | 2018-12-31 11 :45 :56 | | 2016-01-02 01 :23 :04 | +-----------------------+ 4 rows in set (0.00 sec)
다음은 모든 날짜를 변경하지만 시간 값은 변경하지 않는 쿼리입니다 -
mysql> update DemoTable set DueDate=DueDate+interval 1 year; Query OK, 4 rows affected (0.16 sec) Rows matched : 4 Changed : 4 Warnings : 0
다시 한번 테이블 기록을 확인해보자 -
mysql> select *from DemoTable;
이것은 다음과 같은 출력을 생성합니다 -
+-----------------------+ | DueDate | +-----------------------+ | 2018-08-12 10 :30 :45 | | 2016-09-21 12 :00 :00 | | 2019-12-31 11 :45 :56 | | 2017-01-02 01 :23 :04 | +-----------------------+ 4 rows in set (0.00 sec)