Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

คำนวณความต่างของเวลาในคอลัมน์ต่างกัน MySQL

ใช้ 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') = แสดงเป็น ชั่วโมง:นาที