Khi cố gắng trích xuất giá trị giờ từ một giá trị chỉ có ngày (không có thời gian), hàm EXTRACT() trả về kết quả không mong muốn kèm cảnh báo.
Trích xuất HOUR từ 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' | +---------+------+----------------------------------------------+ 1 row in set (0.00 sec)
Trích xuất MINUTE từ 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) mysql> SHOW WARNINGS; +---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2017-10-20' | +---------+------+----------------------------------------------+ 1 row in set (0.00 sec)
Trả về 20 (phần thế kỷ của năm 2017).
Trích xuất SECOND từ 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) mysql> SHOW WARNINGS; +---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2017-10-20' | +---------+------+----------------------------------------------+ 1 row in set (0.00 sec)
Trả về 17 (phần năm cuối của 2017). Tương tự với CURDATE().