MySQL TIMESTAMPDIFF()
hàm được sử dụng để tìm sự khác biệt giữa hai biểu thức ngày tháng hoặc ngày giờ. Bạn cần chuyển hai giá trị ngày / giờ, cũng như đơn vị để sử dụng để xác định sự khác biệt (ví dụ: ngày , tháng , vân vân). TIMESTAMPDIFF()
sau đó hàm sẽ trả về sự khác biệt trong đơn vị được chỉ định.
Cú pháp
Đầu tiên, đây là cách thực hiện cú pháp:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Đây, unit
là đơn vị để thể hiện sự khác biệt (ví dụ:ngày, tháng, năm, v.v.). datetime_expr1
là giá trị ngày / datetime đầu tiên và datetime_expr2
là thứ hai.
Hàm này trừ đi datetime_expr1
từ datetime_expr2
và trả về kết quả trong unit
S. Kết quả được trả về dưới dạng số nguyên.
Đơn vị hợp lệ
Đơn vị unit
đối số có thể là bất kỳ đối số nào sau đây:
-
MICROSECOND
-
SECOND
-
MINUTE
-
HOUR
-
DAY
-
WEEK
-
MONTH
-
QUARTER
-
YEAR
Ví dụ 1 - Sự khác biệt về số ngày
Dưới đây là một ví dụ để chứng minh cách sử dụng cơ bản của hàm này. Ở đây, chúng tôi so sánh hai biểu thức ngày và trả về sự khác biệt giữa chúng theo ngày.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Kết quả:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Ví dụ 2 - Chênh lệch về số giờ
Trong ví dụ này, chúng tôi so sánh các giá trị giống như trong ví dụ trước, ngoại trừ ở đây, chúng tôi trả lại sự khác biệt trong giờ .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Kết quả:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Ví dụ 3 - Ví dụ về 'datetime'
Dưới đây là một ví dụ trả lại sự khác biệt trong vài phút. Trong trường hợp này, chúng tôi so sánh hai giá trị ngày giờ (thay vì chỉ các giá trị ngày như trong các ví dụ trước).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Kết quả:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Ví dụ 4 - Giây phân số
Bạn có thể xuống ngay đến micro giây (6 chữ số) nếu cần.
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
Kết quả:
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
Ví dụ 5 - Kết quả phủ định
Như mong đợi, nếu đối số ngày / giờ đầu tiên lớn hơn đối số thứ hai, kết quả sẽ là một số nguyên âm.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Kết quả:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+