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

Tính chênh lệch 2 timestamp tính bằng giây trong MySQL?

Kết hợp TIMEDIFF() (trả về TIME) và TIME_TO_SEC() (chuyển TIME thành tổng giây).

Cú pháp:

SELECT TIME_TO_SEC(TIMEDIFF(cot_thoi_gian_1, cot_thoi_gian_2)) AS ten_alias FROM ten_bang;

Ví dụ:

CREATE TABLE TimeToSecond (MyTime TIMESTAMP, YourTime TIMESTAMP);
INSERT INTO TimeToSecond VALUES
('2016-05-10 10:02:00','2016-05-10 10:00:00'),
('2016-05-10 10:06:00','2016-05-10 10:03:00'),
('2018-05-10 11:00:00','2018-05-10 10:00:00');

Truy vấn:

SELECT TIME_TO_SEC(TIMEDIFF(MyTime, YourTime)) AS DifferenceInSeconds FROM TimeToSecond;

Kết quả

+---------------------+
| DifferenceInSeconds |
+---------------------+
|                 120 |  -- 2 phút
|                 180 |  -- 3 phút
|                3600 |  -- 1 giờ
+---------------------+

Lưu ý:

  • TIMEDIFF trả về TIME (có thể âm nếu tham số 1 < tham số 2).
  • TIME_TO_SEC chuyển HH:MM:SS thành tổng giây (có thể âm).
  • Kết quả kiểu BIGINT.

Mở rộng: Dùng TIMESTAMPDIFF(SECOND, cot1, cot2) trực tiếp (đơn giản hơn, hỗ trợ nhiều đơn vị: MICROSECOND, MINUTE, HOUR, DAY...).