我正在尝试将字符串更改为时间格式,但在我的数据库配置中似乎有些问题。因为当我尝试跟随查询时它会给我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 Server中尝试相同的查询时,它就可以了。必须有一些配置问题。 如果有人可以提供帮助我感激提前谢谢。
答案 0 :(得分:3)
这意味着您启用了NO_ZERO_DATE
或NO_ZERO_IN_DATE
SQL模式,因此MySQL不允许您将隐含日期为0000-00-00
的时间字符串转换为日期时间。
由于您的输入值实际上是时间字符串(而不是日期时间),因此使用CONVERT()
函数可能更有意义,如下所示:
SELECT CONVERT('18:11:52', TIME);