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

Trừ giây từ cột DATETIME trong MySQL với INTERVAL SECOND

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 - interval trả về DATETIME.
  • Kết hợp với múi giờ: cột TIMESTAMP tự chuyển múi giờ, DATETIME không.
  • Index trên cột DATETIME vẫn dùng được cho WHERE ArrivalTime > NOW() - INTERVAL 1 HOUR.