Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Kết quả khi EXTRACT giá trị thời gian từ chỉ có ngày trong MySQL

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().