如果指定的格式字符串不符合作为参数传递给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)
猜你喜欢