Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách cập nhật phần ngày của cột DATETIME trong MySQL

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 MONTH
  • DATE_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.