ใช้ TIMEDIFF() หาความต่างเวลา แล้ว TIME_FORMAT() จัดรูปแบบผลลัพธ์
สร้างตารางตัวอย่าง
mysql> CREATE TABLE DemoTable (
-> PunchIn TIME,
-> PunchOut TIME,
-> Launch TIME
-> );
เพิ่มข้อมูลตัวอย่าง
mysql> INSERT INTO DemoTable VALUES('9:00', '6:00', '1:00:00');
mysql> INSERT INTO DemoTable VALUES('9:30', '6:10', '00:30:00');
แสดงข้อมูล
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+----------+----------+----------+ | PunchIn | PunchOut | Launch | +----------+----------+----------+ | 09:00:00 | 06:00:00 | 01:00:00 | | 09:30:00 | 06:10:00 | 00:30:00 | +----------+----------+----------+
คำสั่งคำนวณเวลาทำงานจริง (PunchIn - PunchOut - Launch)
mysql> SELECT TIME_FORMAT(
-> TIMEDIFF(TIMEDIFF(PunchIn, PunchOut), Launch),
-> '%H:%i'
-> ) AS TimeDiff FROM DemoTable;
ผลลัพธ์:
+----------+ | TimeDiff | +----------+ | 02:00 | | 02:50 | +----------+
คำอธิบาย: TIMEDIFF(PunchIn, PunchOut) = ระยะเวลารวม | TIMEDIFF(..., Launch) = ลบเวลาพัก | TIME_FORMAT(..., '%H:%i') = แสดงเป็น ชั่วโมง:นาที