MySQL 中的 '2018-03-22 00:00:00” 有什么问题?
What's wrong with '2018-03-22 00:00:00" in MySQL?
我想更新日期字段并将其设置为 2018-03-22 00:00:00
但我收到以下愚蠢错误:
Error Code: 1292. Incorrect datetime value: '2018-03-22 00:00:00' for column 'Date' at row 158917
这是我用于更新的查询:
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';
怎么了?我搜索了很多,发现 MySQL 不支持 1970-01-01 00:00:01
之前的日期,这是可以接受的,但是 2018 年中期的日期?这是我无法消化的东西。
是否有任何解决方案可以使这项工作正常进行?
我猜您正在更新 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 连接执行这些操作。
我想更新日期字段并将其设置为 2018-03-22 00:00:00
但我收到以下愚蠢错误:
Error Code: 1292. Incorrect datetime value: '2018-03-22 00:00:00' for column 'Date' at row 158917
这是我用于更新的查询:
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';
怎么了?我搜索了很多,发现 MySQL 不支持 1970-01-01 00:00:01
之前的日期,这是可以接受的,但是 2018 年中期的日期?这是我无法消化的东西。
是否有任何解决方案可以使这项工作正常进行?
我猜您正在更新 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 连接执行这些操作。