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

ฟังก์ชัน EXTRACT() ใช้เพื่อดึงค่าบางส่วนจากวันที่หรือเวลาที่ระบุ เช่น YEAR, MONTH, DAY, HOUR, MINUTE, SECOND ฯลฯ เหมาะสำหรับการดึงส่วนต่าง ๆ ของวันและเวลา เช่น ปี, เดือน, วัน, ชั่วโมง, นาที ฯลฯ จากข้อมูลชนิด DATE, DATETIME หรือ TIMESTAMP

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

  1. ดึงส่วนที่ต้องการจาก DATE หรือ DATETIME ได้สะดวก
  2. ใช้แทนหลายฟังก์ชัน เช่น YEAR(), MONTH()
  3. เหมาะสำหรับจัดกลุ่ม (GROUP BY), กรอง (WHERE) หรือจัดเรียง (ORDER BY)

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

EXTRACT(unit FROM date)
  • unit คือหน่วยของเวลาที่ต้องการดึงออก เช่น
    • MICROSECOND
    • SECOND
    • MINUTE
    • HOUR
    • DAY
    • WEEK
    • MONTH
    • QUARTER
    • YEAR
    • SECOND_MICROSECOND
    • MINUTE_MICROSECOND
    • MINUTE_SECOND
    • HOUR_MICROSECOND
    • HOUR_SECOND
    • HOUR_MINUTE
    • DAY_MICROSECOND
    • DAY_SECOND
    • DAY_MINUTE
    • DAY_HOUR
    • YEAR_MONTH
  • date คือค่าวันที่หรือเวลา เช่น '2025-04-10 15:30:00', NOW(), order_date

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

ดึงปีจากวันเวลา

SQL
SELECT EXTRACT(YEAR FROM '2025-04-10') AS year_part;
-- ผลลัพธ์: 2025

ดึงเดือนจากวันเวลาปัจจุบัน

SQL
SELECT EXTRACT(MONTH FROM NOW()) AS month_part;
-- ตัวอย่างผลลัพธ์: 4

ดึงวันในเดือนจากฟิลด์วันที่

SQL
SELECT EXTRACT(DAY FROM order_date) AS order_day
FROM orders;

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

สรุปยอดขายรายปี

SQL
SELECT EXTRACT(YEAR FROM order_date) AS order_year, COUNT(*) AS total_orders
FROM orders
GROUP BY order_year;

กรองรายการที่เกิดในเดือนเมษายน

SQL
SELECT *
FROM events
WHERE EXTRACT(MONTH FROM event_date) = 4;
แชร์เรื่องนี้