ฟังก์ชัน MICROSECOND() ใช้เพื่อดึงค่าไมโครวินาที (0–999999) จาก DATETIME(6) หรือ TIME(6) ที่รองรับความละเอียดระดับไมโครวินาที
- ใช้กับเวลาแบบละเอียด เช่น
'2025-04-10 14:30:45.123456' - คืนค่าผลลัพธ์เป็นจำนวนเต็ม (INTEGER)
ประโยชน์ของฟังก์ชัน MICROSECOND()
- ใช้ตรวจสอบหรือจัดเก็บค่าความละเอียดระดับสูงในระบบที่ต้องการความแม่นยำด้านเวลา
- ใช้ในระบบที่ต้องวัดเวลาเฉพาะ เช่น บันทึกประสิทธิภาพ, ระบบจับเวลา, หรือระบบความปลอดภัย
- ใช้ร่วมกับ
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