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

ฟังก์ชัน MICROSECOND() ใช้เพื่อดึงค่าไมโครวินาที (0–999999) จาก DATETIME(6) หรือ TIME(6) ที่รองรับความละเอียดระดับไมโครวินาที

  • ใช้กับเวลาแบบละเอียด เช่น '2025-04-10 14:30:45.123456'
  • คืนค่าผลลัพธ์เป็นจำนวนเต็ม (INTEGER)

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

  1. ใช้ตรวจสอบหรือจัดเก็บค่าความละเอียดระดับสูงในระบบที่ต้องการความแม่นยำด้านเวลา
  2. ใช้ในระบบที่ต้องวัดเวลาเฉพาะ เช่น บันทึกประสิทธิภาพ, ระบบจับเวลา, หรือระบบความปลอดภัย
  3. ใช้ร่วมกับ NOW(6), CURRENT_TIMESTAMP(6), SYSDATE(6) เพื่อดึงค่าละเอียดสูงสุด

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

MICROSECOND(datetime)
  • datetime ค่าวันเวลา (DATETIME(6) หรือ TIME(6)) ที่ต้องการดึงค่าไมโครวินาที

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

ดึงค่าไมโครวินาทีจาก DATETIME(6)

SQL
SELECT MICROSECOND('2025-04-10 14:30:45.123456') AS micros;
-- ผลลัพธ์: 123456

ดึงจากฟังก์ชันเวลาปัจจุบัน

SQL
SELECT MICROSECOND(NOW(6)) AS current_micros;
-- ตัวอย่างผลลัพธ์: 987654 (ขึ้นอยู่กับเวลาจริง)

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

ตรวจจับรายการที่เกิดในช่วงเวลาแม่นยำ (ใช้ไมโครวินาทีร่วมกับชั่วโมง)

SQL
SELECT *
FROM transaction_logs
WHERE HOUR(event_time) = 14
  AND MICROSECOND(event_time) BETWEEN 100000 AND 200000;

เปรียบเทียบข้อมูลแบบละเอียด (เวลาต่างกันในระดับ sub-second)

SQL
SELECT id, event_time
FROM events
WHERE MICROSECOND(event_time) > 900000;

หมายเหตุ

  • หากใช้ DATETIME หรือ TIME ที่ไม่ระบุความละเอียด (ไม่ใส่ (6)) จะคืนค่า 0 เสมอ
  • ฟิลด์ที่ใช้ควรสร้างแบบ DATETIME(6) หรือ TIME(6) เพื่อรองรับข้อมูลระดับไมโครวินาที
  • หากใช้ค่าที่ไม่สามารถแปลงเป็นวันเวลาได้ ผลลัพธ์จะเป็น NULL
แชร์เรื่องนี้