我有一个带有时间戳列的 mysql 表。我们现在要做的是使 datetime 列中的时间戳更新。
例如,当最新记录是 10 小时前。我想在每行的日期时间上增加 10 小时。在该操作之后,最新的时间戳具有 value= now()
这可以通过一个查询来实现吗?
这现在有效(经过测试):
SELECT MAX(`timestamp`) FROM yourTable INTO @a_variable;
UPDATE yourTable
SET `timestamp` = DATE_SUB(`timestamp`, INTERVAL TIMESTAMPDIFF(SECOND, NOW(), @a_variable) SECOND)
有关更多信息,请参阅手册
您是否尝试过在 UPDATE 查询中使用子查询?(请注意,我没有对此进行测试,但我想它应该可以工作)
UPDATE table
SET timestamp = ADDTIME(timestamp,
(SELECT TIMEDIFF(NOW(), timestamp)
FROM table
ORDER BY timestamp DESC
LIMIT 1))