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