ฟังก์ชัน TIME_TO_SEC() ใช้เพื่อแปลงค่าประเภท TIME เป็นจำนวนวินาทีทั้งหมด (นับจาก 00:00:00) เหมาะสำหรับการนำเวลาไปใช้ในรูปแบบที่ต้องคำนวณ เช่น บวก ลบ หรือหาค่าเฉลี่ย
- ใช้คู่กับ
SEC_TO_TIME()เพื่อแปลงไปมาระหว่างเวลาและวินาที - เหมาะกับระบบที่ต้องวัดระยะเวลา เช่น เวลาทำงาน, เวลาการใช้งาน
ประโยชน์ของฟังก์ชัน TIME_TO_SEC()
- แปลงเวลาให้อยู่ในรูปแบบจำนวนวินาที เพื่อใช้ในสูตรทางคณิตศาสตร์
- ใช้ร่วมกับ
SEC_TO_TIME()เพื่อบวกหรือลบเวลาได้อย่างยืดหยุ่น - เหมาะกับระบบที่ต้องประมวลผลเวลา เช่น การจับเวลา, การวัดเวลาเฉลี่ย
รูปแบบการใช้งาน
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;