如果我试图添加值小于1970年的日期时间(例如,1969-01-01 : 00:00:01),我注意到MySQL会抛出一个错误。原因是MySQL中的时间戳仅从1970年开始。但是,在我的测试服务器中,我可以添加小于1970的日期时间。在生产服务器上-不。为什么会这样呢?我假设MySQL在使用不同sql模式的生产和测试服务器上配置不同。但我找不到哪种模式是造成这种行为的原因。
发布于 2022-07-28 20:14:33
您显然在生产服务器上启用了严格的SQL模式,但没有启用测试服务器。关于超出范围和溢出处理的文档说:
当MySQL将值存储在列数据类型允许范围之外的数值列中时,结果取决于当时有效的SQL模式:
当我尝试将该日期存储到没有严格SQL模式的服务器上的TIMESTAMP列中时,我会收到一个警告:
第1行“d2”列的超出范围值
取而代之的是存储0000-00-00 00:00:00。
https://stackoverflow.com/questions/73158558
复制相似问题