日期格式问题 STR_TO_DATE('18:11:52', '%H:%i:%s') Returns NULL
Date Format issue STR_TO_DATE('18:11:52', '%H:%i:%s') Returns NULL
我正在尝试将字符串更改为时间格式,但我的数据库配置似乎有些问题。因为当我尝试跟踪查询时,它在 return
中给了我 null
mysql> select STR_TO_DATE('18:11:52', '%H:%i:%s');
+-------------------------------------+
| STR_TO_DATE('18:11:52', '%H:%i:%s') |
+-------------------------------------+
| NULL |
+-------------------------------------+
mysql> show warnings;
+---------+------+---------------------------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: '18:11:52' for function str_to_date |
+---------+------+---------------------------------------------------------------+
但是当我在另一个 Mysql 服务器上尝试相同的查询时,一切正常。肯定有一些配置问题。
如果有人可以提供帮助,我将不胜感激。提前致谢。
这意味着您启用了 NO_ZERO_DATE
或 NO_ZERO_IN_DATE
SQL 模式,因此 MySQL 将不允许您转换带有隐式日期 0000-00-00
到日期时间。
由于您的输入值实际上是一个时间字符串(不是日期时间),因此使用 CONVERT()
函数可能更有意义,如下所示:
SELECT CONVERT('18:11:52', TIME);
我正在尝试将字符串更改为时间格式,但我的数据库配置似乎有些问题。因为当我尝试跟踪查询时,它在 return
中给了我 nullmysql> select STR_TO_DATE('18:11:52', '%H:%i:%s');
+-------------------------------------+
| STR_TO_DATE('18:11:52', '%H:%i:%s') |
+-------------------------------------+
| NULL |
+-------------------------------------+
mysql> show warnings;
+---------+------+---------------------------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: '18:11:52' for function str_to_date |
+---------+------+---------------------------------------------------------------+
但是当我在另一个 Mysql 服务器上尝试相同的查询时,一切正常。肯定有一些配置问题。 如果有人可以提供帮助,我将不胜感激。提前致谢。
这意味着您启用了 NO_ZERO_DATE
或 NO_ZERO_IN_DATE
SQL 模式,因此 MySQL 将不允许您转换带有隐式日期 0000-00-00
到日期时间。
由于您的输入值实际上是一个时间字符串(不是日期时间),因此使用 CONVERT()
函数可能更有意义,如下所示:
SELECT CONVERT('18:11:52', TIME);