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