如果指定的格式字串與作為引數傳遞給 STR_TO_DATE() 函式的日期字串不符,MySQL 會返回什麼?


如果指定的格式字串和日期字串不匹配,則 MySQL 將返回 NULL 值作為輸出,併發出警告。以下是一個示例,以便更好地理解:-

mysql> Select STR_TO_DATE('20172810', '%Y,%d%m');
+------------------------------------+
| STR_TO_DATE('20172810', '%Y,%d%m') |
+------------------------------------+
| NULL                               |
+------------------------------------+
1 row in set, 1 warning (0.00 sec)

上面的查詢返回 NULL 作為輸出,因為格式字串在 %Y 後面有一個逗號 (,),但日期字串在 2017 後面沒有逗號。

mysql> Show Warnings\G
*************************** 1. row ***************************
Level: Warning
Code: 1411
Message: Incorrect datetime value: '20172810' for function str_to_date
1 row in set (0.00 sec)

類似地,在區分格式字串中日期單位的順序與日期字串中的日期單位的順序時,MySQL 將執行與上述相同的操作。以下是一個示例,以便更好地理解:-

mysql> Select STR_TO_DATE('20172810', '%d%m%Y');
+-----------------------------------+
| STR_TO_DATE('20172810', '%d%m%Y') |
+-----------------------------------+
| NULL                              |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

在上面的查詢中,格式字串中單位的順序與日期字串中單位的順序不同。

mysql> Show Warnings\G
*************************** 1. row ***************************
Level: Warning
Code: 1411
Message: Incorrect datetime value: '20172810' for function str_to_date
1 row in set (0.00 sec)

更新於: 2020年1月30日

423 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.