首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL在添加日期时间小于1970年时抛出错误

问MySQL在添加日期时间小于1970年时抛出错误
EN

Stack Overflow用户
提问于 2022-07-28 19:59:04
回答 1查看 39关注 0票数 0

如果我试图添加值小于1970年的日期时间(例如,1969-01-01 : 00:00:01),我注意到MySQL会抛出一个错误。原因是MySQL中的时间戳仅从1970年开始。但是,在我的测试服务器中,我可以添加小于1970的日期时间。在生产服务器上-不。为什么会这样呢?我假设MySQL在使用不同sql模式的生产和测试服务器上配置不同。但我找不到哪种模式是造成这种行为的原因。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-28 20:14:33

您显然在生产服务器上启用了严格的SQL模式,但没有启用测试服务器。关于超出范围和溢出处理的文档说:

当MySQL将值存储在列数据类型允许范围之外的数值列中时,结果取决于当时有效的SQL模式:

  • 如果启用了严格的SQL模式,MySQL会根据SQL标准拒绝超出范围的值,而插入失败。
  • 如果没有启用限制模式,MySQL将该值剪辑到列数据类型范围的适当端点,然后存储结果值。

当我尝试将该日期存储到没有严格SQL模式的服务器上的TIMESTAMP列中时,我会收到一个警告:

第1行“d2”列的超出范围值

取而代之的是存储0000-00-00 00:00:00。

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

https://stackoverflow.com/questions/73158558

复制
相关文章

相似问题

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