如果指定的格式字符串与作为参数传递给 STR_TO_DATE() 函数的日期字符串不一致,MySQL 将返回什么?

mysqlmysqli database更新于 2025/4/20 10:20:17

如果指定的格式字符串和日期字符串不匹配,则 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)

相关文章


有用资源