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