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

Tính hiệu giữa các cột TIME trong MySQL

Sử dụng TIMEDIFF() để trừ hai giá trị TIME, và TIME_FORMAT() để định dạng kết quả.

Tạo bảng chấm công

mysql> CREATE TABLE DemoTable (
    -> PunchIn TIME,
    -> PunchOut TIME,
    -> Launch TIME
    -> );
Query OK, 0 rows affected (0.50 sec)
mysql> INSERT INTO DemoTable VALUES('9:00', '6:00', '1:00:00'), ('9:30', '6:10', '00:30:00');
Query OK, 2 rows affected (0.19 sec)

Truy vấn tính giờ làm việc thực tế (PunchIn - PunchOut - Launch)

mysql> SELECT TIME_FORMAT(
    ->   TIMEDIFF(TIMEDIFF(PunchIn, PunchOut), Launch),
    ->   '%H:%i'
    -> ) AS TimeDiff FROM DemoTable;

Kết quả:

+----------+
| TimeDiff |
+----------+
| 02:00    |
| 02:50    |
+----------+
2 rows in set (0.00 sec)

Giải thích:

  • TIMEDIFF(PunchIn, PunchOut): tổng thời gian ở công ty
  • Trừ Launch: thời gian nghỉ trưa
  • TIME_FORMAT(..., '%H:%i'): định dạng giờ:phút