ฟังก์ชัน SEC_TO_TIME() ใช้เพื่อแปลงค่า “วินาที” (เช่น 3600, 3661, 7320) เป็นเวลาในรูปแบบ HH:MM:SS เหมาะกับการแสดงระยะเวลา เช่น เวลาการใช้งาน, เวลาที่ใช้ในกระบวนการ, หรือเวลารวมจากค่าที่บันทึกไว้เป็นวินาที
ประโยชน์ของฟังก์ชัน SEC_TO_TIME()
- ใช้แสดงเวลาที่บันทึกไว้เป็นวินาที เช่น เวลาการดูวิดีโอ, เวลาการทำงาน
- เหมาะกับการแปลงผลรวมจาก
SUM(TIMESTAMPDIFF(SECOND, ...)) - ใช้จัดรูปแบบเวลาที่อ่านง่ายขึ้น เช่น
124เป็น00:02:04 - รองรับการใช้งานกับค่าที่เกิน 24 ชั่วโมง เช่น
SEC_TO_TIME(90000)เป็น25:00:00
รูปแบบการใช้งาน
SEC_TO_TIME(seconds)
secondsคือจำนวนวินาทีที่ต้องการแปลงเป็นเวลา (INTหรือBIGINT)
ตัวอย่างการใช้งาน
แปลง 3661 วินาที (1 ชั่วโมง 1 นาที 1 วินาที)
SQL
SELECT SEC_TO_TIME(3661) AS time_value;
-- ผลลัพธ์: 01:01:01แปลง 7320 วินาที (2 ชั่วโมง 2 นาที)
SQL
SELECT SEC_TO_TIME(7320) AS time_value;
-- ผลลัพธ์: 02:02:00แปลงค่าที่เกิน 24 ชั่วโมง
SQL
SELECT SEC_TO_TIME(90000) AS time_value;
-- ผลลัพธ์: 25:00:00ตัวอย่างการประยุกต์ใช้งาน
แสดงเวลารวมที่ลูกค้าใช้ในระบบ (หน่วยเดิมเป็นวินาที)
SQL
SELECT user_id,
SEC_TO_TIME(SUM(session_seconds)) AS total_time_online
FROM user_sessions
GROUP BY user_id;แสดงระยะเวลาเฉลี่ยของคำสั่งซื้อ (บันทึกเป็นวินาที)
SQL
SELECT SEC_TO_TIME(AVG(processing_seconds)) AS avg_process_time
FROM orders;