MySQL การใช้งานฟังก์ชัน TIMEDIFF()

ฟังก์ชัน TIMEDIFF() ใช้เพื่อหาค่าความแตกต่างระหว่างเวลา 2 ค่า (DATETIME หรือ TIME) แล้วคืนค่าเป็น TIME โดยแสดงผลในรูปแบบ HH:MM:SS (ชั่วโมง:นาที:วินาที) เหมาะสำหรับวิเคราะห์เวลาทำงาน, เวลาล่าช้า, หรือระยะห่างระหว่าง 2 เหตุการณ์

ประโยชน์ของฟังก์ชัน TIMEDIFF()

  1. หาระยะเวลาทำงานระหว่างเวลาเข้า-ออก
  2. ตรวจสอบความล่าช้า/ความเร็วจากเวลาที่กำหนด
  3. ใช้สรุปเวลาทำงาน/เวลาการใช้งานระบบ
  4. คืนค่าที่สามารถใช้ต่อกับฟังก์ชันอื่น เช่น TIME_TO_SEC()

รูปแบบการใช้งาน

TIMEDIFF(time1, time2)
  • time1 คือค่าเวลาที่นำมาลบ (เวลาหลัง)
  • time2 คือค่าเวลาที่เป็นตัวตั้ง (เวลาก่อนหน้า)
  • ทั้ง time1 และ time2 ต้องเป็นชนิดเดียวกัน (TIME หรือ DATETIME ทั้งคู่)

ตัวอย่างการใช้งาน

หาค่าความต่างของเวลา 08:30:00 และ 07:15:00

SQL
SELECT TIMEDIFF('08:30:00', '07:15:00') AS diff;
-- ผลลัพธ์: 01:15:00

หาค่าความต่างจาก DATETIME

SQL
SELECT TIMEDIFF('2025-04-10 14:00:00', '2025-04-10 12:30:00') AS duration;
-- ผลลัพธ์: 01:30:00

ตัวอย่างการประยุกต์ใช้งาน

หาระยะเวลาการทำงานต่อวัน

SQL
SELECT employee_id, check_in, check_out,
       TIMEDIFF(check_out, check_in) AS work_duration
FROM attendance;

ตรวจสอบเวลาการใช้งานระบบของผู้ใช้

SQL
SELECT user_id, login_time, logout_time,
       TIMEDIFF(logout_time, login_time) AS session_length
FROM user_sessions;
แชร์เรื่องนี้