Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:làm thế nào để có được sự khác biệt giữa hai dấu thời gian trong vài giây

Bạn có thể sử dụng TIMEDIFF() TIME_TO_SEC() các chức năng như sau:

SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
+------+
| diff |
+------+
|   60 |
+------+
1 row in set (0.00 sec)

Bạn cũng có thể sử dụng UNIX_TIMESTAMP() hoạt động như @ Amber đề xuất trong một câu trả lời khác:

SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') - 
       UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
+------+
| diff |
+------+
|   60 |
+------+
1 row in set (0.00 sec)

Nếu bạn đang sử dụng TIMESTAMP loại dữ liệu, tôi đoán rằng UNIX_TIMESTAMP() giải pháp sẽ nhanh hơn một chút, vì TIMESTAMP các giá trị đã được lưu trữ dưới dạng số nguyên đại diện cho số giây kể từ kỷ nguyên ( Nguồn ). Trích dẫn tài liệu :

Khi UNIX_TIMESTAMP() được sử dụng trên TIMESTAMP , hàm trả về giá trị dấu thời gian bên trong trực tiếp, không có chuyển đổi “chuỗi-thành-Unix-dấu thời gian” ngầm định.

Hãy nhớ rằng TIMEDIFF() kiểu dữ liệu trả về của TIME . TIME giá trị có thể nằm trong khoảng từ '-838:59:59' đến '838:59:59' (khoảng 34,96 ngày)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách nhập CSV vào MySQL Workbench

  2. Làm cách nào để tìm vị trí mySQL my.cnf

  3. thủ tục được lưu trữ mysql tự gọi đệ quy

  4. Cách xóa toàn bộ cơ sở dữ liệu MySQL

  5. Tạo một bảng tạm thời trong một câu lệnh SELECT mà không có một bảng CREATE TABLE riêng biệt