ฟังก์ชัน MySQL EXTRACT() สามารถใช้หน่วยผสมต่อไปนี้ได้ -
- SECOND_MICROSECOND
- MINUTE_MICROSECOND
- HOUR_MICROSECOND
- DAY_MICROSECOND
- MINUTE_SECOND
- HOUR_SECOND
- HOUR_MINUTE
- DAY_SECOND
- DAY_MINUTE
- DAY_HOUR
- YEAR_MONTH
ตัวอย่างบางส่วนของหน่วยผสมที่ใช้ในฟังก์ชัน EXTRACT() มีดังนี้ −
mysql> Select EXTRACT(YEAR_MONTH from '2017-10-20'); +---------------------------------------+ | EXTRACT(YEAR_MONTH from '2017-10-20') | +---------------------------------------+ | 201710 | +---------------------------------------+ 1 row in set (0.00 sec)
ข้อความค้นหาด้านบนจะคืนค่าปีและเดือนจากวันที่
mysql> Select EXTRACT(DAY_HOUR from '2017-10-20 05:46:45'); +----------------------------------------------+ | EXTRACT(DAY_HOUR from '2017-10-20 05:46:45') | +----------------------------------------------+ | 2005 | +----------------------------------------------+ 1 row in set (0.00 sec)
ข้อความค้นหาด้านบนจะคืนค่าวันและชั่วโมงจากวันที่
สิ่งหนึ่งที่เราต้องคำนึงว่าหน่วยประกอบที่กล่าวถึงข้างต้นเป็นชุดของค่าที่สมบูรณ์ กล่าวคือ ถ้าเราจะใช้ DAY_MINUTE MySQL จะส่งกลับ DAY, HOUR และ MINUTE หมายความว่าค่าใดๆ ที่ปกติคาดว่าจะถูกเติมระหว่างหน่วยเริ่มต้นและสิ้นสุด
ตัวอย่างเช่น เคียวรีด้านล่างใช้หน่วยทบต้น DAY_MICROSECOND และ MySQL จะส่งกลับ DAY, HOUR, MINUTE, SECOND และ MICROSECOND หมายความว่าค่า HOUR, MINUTE และ SECOND เติมระหว่าง DAY และ MICROSECOND
mysql> Select EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356'); +---------------------------------------------------------------------------+ | EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356') | +---------------------------------------------------------------------------+ | 22055245102356 | +---------------------------------------------------------------------------+ 1 row in set (0.00 sec)