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

Cập nhật datetime: trừ 1 giờ từ thời gian hiện tại trong MySQL

Để trừ một khoảng thời gian (như 1 giờ) từ thời gian hiện tại và cập nhật vào cột DATETIME, MySQL cung cấp hàm DATE_SUB() kết hợp với NOW().

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable1434 (
    ArrivalDatetime DATETIME
);

Chèn dữ liệu mẫu:

mysql> INSERT INTO DemoTable1434 VALUES ('2019-09-30 21:10:00');
mysql> INSERT INTO DemoTable1434 VALUES ('2018-09-30 22:20:40');
mysql> INSERT INTO DemoTable1434 VALUES ('2017-09-30 23:10:00');

Dữ liệu ban đầu:

mysql> SELECT * FROM DemoTable1434;
+---------------------+
| ArrivalDatetime     |
+---------------------+
| 2019-09-30 21:10:00 |
| 2018-09-30 22:20:40 |
| 2017-09-30 23:10:00 |
+---------------------+

Cập nhật tất cả hàng: trừ 1 giờ từ thời điểm hiện tại

mysql> UPDATE DemoTable1434
    SET ArrivalDatetime = DATE_SUB(NOW(), INTERVAL 1 HOUR);

Kiểm tra thời gian hiện tại:

mysql> SELECT NOW();
+---------------------+
| now()               |
+---------------------+
| 2019-09-30 21:16:48 |
+---------------------+

Kết quả sau cập nhật (tất cả hàng trở thành 20:16:39):

mysql> SELECT * FROM DemoTable1434;
+---------------------+
| ArrivalDatetime     |
+---------------------+
| 2019-09-30 20:16:39 |
| 2019-09-30 20:16:39 |
| 2019-09-30 20:16:39 |
+---------------------+

Các biến thể hữu ích

Cú phápMô tả
DATE_SUB(NOW(), INTERVAL 30 MINUTE)Trừ 30 phút
DATE_SUB(NOW(), INTERVAL 2 DAY)Trừ 2 ngày
DATE_SUB(NOW(), INTERVAL 1 MONTH)Trừ 1 tháng
DATE_ADD(NOW(), INTERVAL 1 HOUR)Cộng 1 giờ (dùng DATE_ADD)

Lưu ý: Câu lệnh này cập nhật tất cả hàng trong bảng thành cùng một giá trị. Nếu cần cập nhật từng hàng dựa trên giá trị gốc của nó, hãy dùng: SET ArrivalDatetime = DATE_SUB(ArrivalDatetime, INTERVAL 1 HOUR).