如果指定的格式字符串与作为参数传递给 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)
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP