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

ฟังก์ชัน TIME_FORMAT() ใช้เพื่อจัดรูปแบบ (format) ค่าเวลา TIME หรือ DATETIME ให้อยู่ในรูปแบบที่ต้องการ โดยสามารถกำหนดรูปแบบการแสดงผลได้อย่างยืดหยุ่น เช่น 12 ชั่วโมง, 24 ชั่วโมง, แสดงเฉพาะนาที ฯลฯ

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

  1. แสดงผลเวลาตามรูปแบบที่อ่านง่าย เช่น 02:30 PM
  2. ใช้ในรายงานหรือ UI ที่ต้องแสดงเวลาแบบกำหนดเอง
  3. แปลงเวลา 24 ชม. เป็น 12 ชม. ได้สะดวก
  4. เหมาะสำหรับแสดงเวลาในระบบที่ใช้ทั้งภาษาไทย/อังกฤษ

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

TIME_FORMAT(time_value, format)
  • time_value คือค่าประเภท TIME, DATETIME, TIMESTAMP
  • format คือรูปแบบที่ต้องการแสดงผลเวลา

Format Specifiers ที่สามารถใช้ได้

Specifier คำอธิบาย ตัวอย่างผลลัพธ์
%f ไมโครวินาที (000000 – 999999) 123456
%H ชั่วโมง (รูปแบบ 24 ชม. มีเลข 0 นำหน้า) (00–23) 14
%h ชั่วโมง (รูปแบบ 12 ชม. มีเลข 0 นำหน้า) (01–12) 02
%I ชั่วโมง (รูปแบบ 12 ชม. มีเลข 0 นำหน้า) (01–12) 09
%i นาที (00–59) 30
%k ชั่วโมง (24 ชม. ไม่เติม 0 ข้างหน้า) (0–23) 9
%l ชั่วโมง (12 ชม. ไม่เติม 0 ข้างหน้า) (1–12) 9
%S วินาที (00–59) 45
%s วินาที (00–59) 45
%p AM หรือ PM PM
%r เวลาแบบ 12 ชม. (hh:mm:ss AM/PM) 02:30:00 PM
%T เวลาแบบ 24 ชม. (hh:mm:ss) 14:30:00

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

แสดงเวลาในรูปแบบ 12 ชั่วโมง + AM/PM

SQL
SELECT TIME_FORMAT('14:30:00', '%h:%i %p') AS formatted_time;
-- ผลลัพธ์: 02:30 PM

ดึงเวลาแบบ HH:MM จาก DATETIME

SQL
SELECT TIME_FORMAT(NOW(), '%H:%i') AS time_only;
-- ผลลัพธ์: เช่น 16:45

ใช้กับข้อมูลในตาราง

SQL
SELECT appointment_time,
       TIME_FORMAT(appointment_time, '%r') AS display_time
FROM appointments;
-- แสดงเวลาแบบ hh:mm:ss AM/PM

แสดงเวลานัดหมายแบบ 12 ชั่วโมงในระบบจอง

SQL
SELECT customer_name,
       TIME_FORMAT(booking_time, '%h:%i %p') AS show_time
FROM bookings;

ใช้ร่วมกับ DATE_FORMAT() เพื่อแสดงวันที่ + เวลาแบบกำหนดเอง

SQL
SELECT DATE_FORMAT(order_date, '%d/%m/%Y') AS order_day,
       TIME_FORMAT(order_date, '%H:%i') AS order_time
FROM orders;
แชร์เรื่องนี้