首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >str_to_date不处理一个数据库,而在另一个数据库上处理得很好

问str_to_date不处理一个数据库,而在另一个数据库上处理得很好
EN

Stack Overflow用户
提问于 2018-04-29 12:37:57
回答 1查看 528关注 0票数 0

我在服务器(v5.5.58)上有一个活动数据库,在我的计算机(v8.0.11)上有一个本地数据库,用作测试数据库。

代码语言:javascript
复制
SELECT STR_TO_DATE("12:21:21", "%H:%i:%s")

在服务器上运行此查询运行良好,而同一查询在本地返回日期为null,并发出警告:

警告:#1411错误的日期时间值:'12:21:21‘函数str_to_date

我知道STR_TO_DATE在MySql版本3.23上工作,所以它应该在版本8上工作,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-29 18:03:31

服务器之间的@@SQL_MODE设置不同。从5.6开始,MySQL服务器对@@SQL_MODE使用了更严格的默认值。

如果启用了NO_ZERO_DATE或NO_ZERO_IN_DATE SQL模式,则不允许使用零日期或部分日期。在这种情况下,STR_TO_DATE()返回NULL并生成一个警告 str-to-date

以前版本的文档中也显示了同样的信息。

您通常可以更改较新的服务器,以模拟旧服务器的行为(通常是允许的,有时是错误的),方法是将@@SQL_MODE更改为匹配的,但要适当谨慎地进行更改,因为更严格的行为通常也更正确,有助于避免对无效值的无声强制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50086642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档