Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL의 시간 레코드를 무시하고 날짜만 변경

<시간/>

시간이 아닌 날짜만 변경하려면 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)