我有一个数据库表,其中包含每条记录的时间戳。每天这个数据库都由一个cron更新,该cron设置为在gmt午夜(23:59:00)之前运行1分钟。我们正在将cron更改为正好在午夜(00:00:00)运行,因此我需要更新在第二天23:59到00:00记录的所有字段(2013-05-21 23:59 :00应更新至2013-05-22 00:00:00)。
更新脚本设置为在脚本启动时捕获时间戳,但因为写得不好而没有占用秒数所以某些记录的开始时间为2013-05-21 23:59:01,有些可能有2013-05-20 23:59:02甚至2013-05-19 23:59:03所有这些都需要更新到第二天的00:00:00。
有数千个其他记录未被cron更新,因此具有随机时间戳。 这些记录不受影响。例如2013-05-19 23:13:47,2013-05-19 02:50:56和2013-05-19 16:42:13都应保持不变。
我认为来自this post的以下代码与我正在寻找的内容有些相似,但经过一些谷歌搜索和测试后,我没有太多运气。
UPDATE table
SET `time` = CASE
WHEN CURRENT_TIMESTAMP>='23:59:00'
THEN CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
ELSE CURRENT_TIMESTAMP END
答案 0 :(得分:1)
尝试此查询 -
UPDATE
table
SET
`time` = DATE(`time`) + INTERVAL 1 DAY
WHERE
TIME(`time`) >= '23:59:00'