Giới thiệu
MySQL cho phép dùng hàm DATE_ADD() kết hợp từ khóa INTERVAL để cộng/trừ thời gian ngay tại câu lệnh INSERT, rất tiện cho việc tính toán ngày giờ tương đối.
Cú pháp
DATE_ADD(date, INTERVAL expr unit)
unit: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR,...expr: Số lượng (có thể âm để trừ).
Ví dụ minh họa
Tạo bảng
mysql> CREATE TABLE DemoTable (
ArrivalTime DATETIME
);
INSERT với INTERVAL
mysql> INSERT INTO DemoTable VALUES (DATE_ADD(NOW(), INTERVAL 4 HOUR));
mysql> INSERT INTO DemoTable VALUES (DATE_ADD('2016-01-31 10:40:50', INTERVAL 2 HOUR));
mysql> INSERT INTO DemoTable VALUES (DATE_ADD('2015-05-01 12:00:00', INTERVAL 1 HOUR));
mysql> INSERT INTO DemoTable VALUES (DATE_ADD('2017-12-04 08:00:00', INTERVAL 9 HOUR));
Xem kết quả
mysql> SELECT * FROM DemoTable;
+---------------------+ | ArrivalTime | +---------------------+ | 2019-08-13 01:50:10 | -- NOW() + 4h (thời điểm demo) | 2016-01-31 12:40:50 | -- +2h | 2015-05-01 13:00:00 | -- +1h | 2017-12-04 17:00:00 | -- +9h +---------------------+
Các đơn vị INTERVAL phổ biến
INTERVAL 1 DAY INTERVAL 3 MONTH INTERVAL -2 HOUR -- Trừ 2 giờ INTERVAL '1 12' DAY_HOUR -- 1 ngày 12 giờ (chuỗi) INTERVAL '1:30' HOUR_MINUTE
Lưu ý
NOW()trả về thời điểm thực thi câu lệnh.- Có thể dùng
DATE_SUB()thay vì INTERVAL âm. - Hữu ích cho: lịch hẹn, nhắc nhở, tính hạn chót, scheduling.