Cú pháp
UPDATE ten_bang SET cot_datetime = cot_datetime - INTERVAL gia_tri DAY WHERE DATE(cot_datetime) = 'ngay_can_cap_nhat';
Ví dụ: Trừ 7 ngày cho bản ghi ngày 2019-02-27
Dữ liệu ban đầu
+----+---------------------+ | 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 | +----+---------------------+
Truy vấn cập nhật
mysql> UPDATE updateDateDemo
-> SET ArrivalDate = ArrivalDate - INTERVAL 7 DAY
-> WHERE DATE(ArrivalDate) = '2019-02-27';
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 | -- Đã trừ 7 ngày +----+---------------------+
Các phép toán thời gian hữu ích
+ INTERVAL n DAY/- INTERVAL n DAY+ INTERVAL n HOUR/- INTERVAL n HOUR+ INTERVAL n MONTH/- INTERVAL n MONTHDATE_ADD(cot, INTERVAL n DAY)- cú pháp hàm thay thế
Mẹo: Dùng DATE(cot) trong WHERE để so sánh chỉ phần ngày, bỏ qua giờ phút giây.