mysql中的“2018-03-22 00:00:00”有什么问题?

7gyucuyw  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(515)

我想更新日期字段并将其设置为 2018-03-22 00:00:00 但我犯了以下愚蠢的错误:
错误代码:1292。datetime值不正确:158917行“date”列的“2018-03-22 00:00:00”
这是我用于更新的查询:

update assets.transactions 
set date = date_add(date, interval 1 hour)
where date between '2018-03-21 23:00:00' and '2018-06-29 23:59:59';

怎么了?我找了很多,找到了以前的约会 1970-01-01 00:00:01 mysql不支持,可以接受,但日期在2018年中?这是我无法消化的。
有什么办法能让这一切正常进行吗?

abithluo

abithluo1#

我猜你在更新 TIMESTAMP 列。我还猜想您的mysql示例设置为一个时区,在2018年3月23日进行夏令时切换。我猜你们国家的时区转换规则意味着时钟从2018年3月21日11:59:59转为2018年3月22日01:00:00。
那么价值呢 2018-03-22 00:00:00 只是不存在。
很奇怪,不是吗?
在执行这些大规模时间戳更新之前,请尝试发出这个mysql命令,将时区设置为utc。

SET time_zone = 'UTC';

别忘了在做其他操作之前把它换回来。或者只是从不同的mysql连接执行这些操作。

相关问题