Giới thiệu
Sử dụng phép trừ INTERVAL n SECOND trực tiếp trên cột DATETIME để trừ giây. Cú pháp ngắn gọn: col - INTERVAL 10 SECOND.
Ví dụ thực hành
1. Tạo bảng DemoTable833
mysql> CREATE TABLE DemoTable833 (ArrivalTime DATETIME);
2. Chèn dữ liệu
mysql> INSERT INTO DemoTable833 VALUES
('2019-01-10 12:40:50'),('2019-02-16 11:10:30'),('2018-03-17 10:00:10');
3. Trừ 10 giây
mysql> SELECT ArrivalTime - INTERVAL 10 SECOND FROM DemoTable833;
4. Kết quả
+--------------------------------+
| ArrivalTime - INTERVAL 10 SECOND |
+--------------------------------+
| 2019-01-10 12:40:40 |
| 2019-02-16 11:10:20 |
| 2018-03-17 10:00:00 |
+--------------------------------+
Cập nhật dữ liệu (UPDATE)
-- Trừ 10 giây cho tất cả
UPDATE DemoTable833 SET ArrivalTime = ArrivalTime - INTERVAL 10 SECOND;
-- Trừ 10 giây cho hàng cụ thể
UPDATE DemoTable833 SET ArrivalTime = ArrivalTime - INTERVAL 10 SECOND WHERE Id = 1;
Các đơn vị thời gian với INTERVAL
INTERVAL 1 MICROSECOND
INTERVAL 1 SECOND
INTERVAL 1 MINUTE
INTERVAL 1 HOUR
INTERVAL 1 DAY
INTERVAL 1 WEEK
INTERVAL 1 MONTH
INTERVAL 1 QUARTER
INTERVAL 1 YEAR
-- Kết hợp
INTERVAL '1 12:30:00' DAY_SECOND -- 1 ngày 12h30p
INTERVAL '1-6' YEAR_MONTH -- 1 năm 6 tháng
Hàm thay thế
DATE_SUB(ArrivalTime, INTERVAL 10 SECOND) -- Tương đương, dạng hàm
DATE_ADD(ArrivalTime, INTERVAL -10 SECOND) -- Cách khác
Lưu ý
- Phép toán
datetime - intervaltrả vềDATETIME. - Kết hợp với múi giờ: cột
TIMESTAMPtự chuyển múi giờ,DATETIMEkhông. - Index trên cột DATETIME vẫn dùng được cho
WHERE ArrivalTime > NOW() - INTERVAL 1 HOUR.