Cập nhật ngày của trường datetime với sự trợ giúp của toán tử số học trừ (-).
Cú pháp như sau
update yourTableName set yourDateTimeColumnName=yourDateTimeColumnName - interval yourValue day where date(yourDateTimeColumnName)=’yourDateValue’;
Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau
mysql> create table updateDateDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ArrivalDate datetime -> ); Query OK, 0 rows affected (0.66 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn.
Truy vấn như sau
mysql> insert into updateDateDemo(ArrivalDate) values('2011-01-13'); Query OK, 1 row affected (0.19 sec) mysql> insert into updateDateDemo(ArrivalDate) values('2013-04-21'); Query OK, 1 row affected (0.11 sec) mysql> insert into updateDateDemo(ArrivalDate) values('2016-12-22'); Query OK, 1 row affected (0.14 sec) mysql> insert into updateDateDemo(ArrivalDate) values('2017-02-25'); Query OK, 1 row affected (0.27 sec) mysql> insert into updateDateDemo(ArrivalDate) values('2018-08-19'); Query OK, 1 row affected (0.17 sec) mysql> insert into updateDateDemo(ArrivalDate) values('2019-02-27'); Query OK, 1 row affected (0.24 sec)
Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select.
Truy vấn như sau
mysql> select *from updateDateDemo;
Sau đây là kết quả
+----+---------------------+ | Id | ArrivalDate | +----+---------------------+ | 1 | 2011-01-13 00:00:00 | | 2 | 2013-04-21 00:00:00 | | 3 | 2016-12-22 00:00:00 | | 4 | 2017-02-25 00:00:00 | | 5 | 2018-08-19 00:00:00 | | 6 | 2019-02-27 00:00:00 | +----+---------------------+ 6 rows in set (0.00 sec)
Đây là truy vấn cập nhật trường datetime
mysql> update updateDateDemo -> set ArrivalDate=ArrivalDate-interval 7 day -> where date(ArrivalDate)='2019-02-27'; Query OK, 1 row affected (0.13 sec) Rows matched: 1 Changed: 1 Warnings: 0
Bây giờ, hãy kiểm tra các bản ghi đã cập nhật từ bảng
mysql> select *from updateDateDemo;
Sau đây là kết quả
+----+---------------------+ | Id | ArrivalDate | +----+---------------------+ | 1 | 2011-01-13 00:00:00 | | 2 | 2013-04-21 00:00:00 | | 3 | 2016-12-22 00:00:00 | | 4 | 2017-02-25 00:00:00 | | 5 | 2018-08-19 00:00:00 | | 6 | 2019-02-20 00:00:00 | +----+---------------------+ 6 rows in set (0.00 sec)