不正确的日期时间值0000-00-0000:00:00 +0000数据库错误号码:1292
大家好,我有一个问题,我的托管公司完成了服务器升级,我正在努力了解发生了什么,所以我可以解决问题
我的服务器最近已升级到服务器版本:5.6.17并且我在整个地方收到错误,说我的日期时间值不正确?
它似乎是在日期时间结束时添加+0000但我不知道为什么.这曾经在5.5上运行得很好但是最近的升级影响了我的时间戳的工作方式
Error Number: 1292
Incorrect datetime value: '2014-04-02 08:49:43 +0000' for column 'created' at row 1
INSERT INTO `activitylog` (`tablename`, `row`, `user_id`, `description`, `action`, `private`,`created`) VALUES ('user', '1', '1', 'People', 'Updated', 0, '2014-04-02 08:49:43 +0000')
Run Code Online (Sandbox Code Playgroud)
如果我在没有+0000的情况下修改这个sql查询,它有效吗?
它影响我桌子上任何类型的DATETIME.
有没有其他人有类似的问题,现在解决方案是让它工作.目前,我需要更改所有PHP函数以回显日期/时间,而不是在查询字符串上调用NOW()
我有一个数据库,旧代码喜欢在Date和DateTime列中插入'0000-00-00'而不是实际日期.所以我有以下两个问题:
跟进:
默认值已设置为null.很久以前,默认是'0000-00-00'.一些代码仍然明确地放置'0000-00-00'.我宁愿强制该代码抛出错误,以便我可以隔离并删除它.
在尝试将记录插入某个表时,我收到如下错误:
数据截断:日期时间值不正确:第1行的'deleted_at'列''00:00:00'
搜索我发现以下问题非常有见地:
但由于以下原因,我不能采取这些答案中给出的任何解决方案:
deleted_at.显然,有一个针对此的检查.你看,最初,delete_at日期不能设置(我会用一个标志就好is_deleted.如果有更好的方法请告诉我).至于您遇到此问题的原因,可能是您的会话的sql_mode设置包括
NO_ZERO_DATES.
我(遗憾地)对这些事情没有多少控制权,因为我不是唯一一个参与这个项目的人.为了让您了解该项目,这就是我收到错误的方法.
他们不使用任何日志记录.希望你能得到这张照片.
所以,考虑到我所约束的约束,除了上面给出的解决方案之外,还有一种方法可以插入'0000-00-00 00:00:00'(我希望可能在JDBC中使用某些东西).
MySQL服务器版本:5.7.12-0ubuntu1