เมื่อพยายามดึงส่วนเวลา (HOUR, MINUTE, SECOND) จากค่าที่เป็น เฉพาะวันที่ (DATE) ผลลัพธ์จะไม่ถูกต้องและมีคำเตือน:
ดึง HOUR จาก DATE
mysql> SELECT EXTRACT(HOUR FROM '2017-10-20'); +---------------------------------+ | EXTRACT(HOUR FROM '2017-10-20') | +---------------------------------+ | 0 | +---------------------------------+ 1 row in set, 1 warning (0.00 sec) mysql> SHOW WARNINGS; +---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2017-10-20' | +---------+------+----------------------------------------------+
ดึง MINUTE จาก DATE
mysql> SELECT EXTRACT(MINUTE FROM '2017-10-20'); +-----------------------------------+ | EXTRACT(MINUTE FROM '2017-10-20') | +-----------------------------------+ | 20 | +-----------------------------------+ 1 row in set, 1 warning (0.00 sec)
คืนค่า 20 (ศตวรรษจากปี 2017) ไม่ใช่นาที!
ดึง SECOND จาก DATE
mysql> SELECT EXTRACT(SECOND FROM '2017-10-20'); +-----------------------------------+ | EXTRACT(SECOND FROM '2017-10-20') | +-----------------------------------+ | 17 | +-----------------------------------+ 1 row in set, 1 warning (0.00 sec)
คืนค่า 17 (ปีท้าย 2 หลัก) ไม่ใช่วินาที!
สรุป: ต้องใช้ค่า DATETIME หรือ TIMESTAMP ถึงจะดึงส่วนเวลาได้ถูกต้อง