我想更新日期字段并将其设置为 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年中?这是我无法消化的。
有什么办法能让这一切正常进行吗?
1条答案
按热度按时间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。
别忘了在做其他操作之前把它换回来。或者只是从不同的mysql连接执行这些操作。