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

ฟังก์ชัน TIME_TO_SEC() ใช้เพื่อแปลงค่าประเภท TIME เป็นจำนวนวินาทีทั้งหมด (นับจาก 00:00:00) เหมาะสำหรับการนำเวลาไปใช้ในรูปแบบที่ต้องคำนวณ เช่น บวก ลบ หรือหาค่าเฉลี่ย

  • ใช้คู่กับ SEC_TO_TIME() เพื่อแปลงไปมาระหว่างเวลาและวินาที
  • เหมาะกับระบบที่ต้องวัดระยะเวลา เช่น เวลาทำงาน, เวลาการใช้งาน

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

  1. แปลงเวลาให้อยู่ในรูปแบบจำนวนวินาที เพื่อใช้ในสูตรทางคณิตศาสตร์
  2. ใช้ร่วมกับ SEC_TO_TIME() เพื่อบวกหรือลบเวลาได้อย่างยืดหยุ่น
  3. เหมาะกับระบบที่ต้องประมวลผลเวลา เช่น การจับเวลา, การวัดเวลาเฉลี่ย

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

TIME_TO_SEC(time_value)
  • time_value คือค่าที่เป็นชนิด TIME หรือ DATETIME หรือ string ที่อยู่ในรูปแบบเวลา

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

แปลง 02:30:00 ให้เป็นวินาที

SQL
SELECT TIME_TO_SEC('02:30:00') AS total_seconds;
-- ผลลัพธ์: 9000
-- 2 ชั่วโมง = 7200 วินาที + 30 นาที = 1800 รวม = 9000 วินาที

แปลงจากเวลาปัจจุบัน

SQL
SELECT TIME_TO_SEC(CURTIME()) AS now_in_seconds;

ใช้ร่วมกับ SEC_TO_TIME() เพื่อเพิ่มเวลาจากวินาที

SQL
SELECT SEC_TO_TIME(TIME_TO_SEC('01:15:00') + 600) AS new_time;
-- เพิ่มอีก 600 วินาที = 10 นาที → ผลลัพธ์: 01:25:00

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

คำนวณเวลาทำงานของพนักงานในวันหนึ่ง (หน่วย: วินาที)

SQL
SELECT employee_id,
       TIME_TO_SEC(time_out) - TIME_TO_SEC(time_in) AS work_seconds
FROM work_log;

คำนวณเวลารวมจากหลาย record

SQL
SELECT user_id,
       SEC_TO_TIME(SUM(TIME_TO_SEC(session_time))) AS total_time
FROM user_sessions
GROUP BY user_id;
แชร์เรื่องนี้