如果我們只向 MySQL 的 EXTRACT() 函式提供日期值,嘗試提取時間值,會輸出什麼?


當我們嘗試從日期中提取小時值時,EXTRACT() 函式會輸出 0,並顯示如下所示的警告:

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)

現在,當我們嘗試從日期中提取分鐘值時,EXTRACT() 函式會將日期中的世紀值作為輸出,並顯示如下所示的警告:

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)

現在,當我們嘗試從日期中提取秒值時,EXTRACT() 函式會將年份值作為輸出,並顯示如下所示的警告:

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)

如果嘗試從當前日期獲取時間值(小時、分鐘和秒),例如使用 Curdate() 代替日期,我們將得到類似的結果。

更新於:2020年1月29日

68 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告