0

我有一个带有时间戳列的 mysql 表。我们现在要做的是使 datetime 列中的时间戳更新。

例如,当最新记录是 10 小时前。我想在每行的日期时间上增加 10 小时。在该操作之后,最新的时间戳具有 value= now()

这可以通过一个查询来实现吗?

4

2 回答 2

1

这现在有效(经过测试):

SELECT MAX(`timestamp`) FROM yourTable INTO @a_variable;
UPDATE yourTable
SET `timestamp` = DATE_SUB(`timestamp`, INTERVAL TIMESTAMPDIFF(SECOND, NOW(), @a_variable) SECOND)

有关更多信息,请参阅手册

于 2012-05-24T13:59:33.410 回答
0

您是否尝试过在 UPDATE 查询中使用子查询?(请注意,我没有对此进行测试,但我想它应该可以工作)

UPDATE table
SET timestamp = ADDTIME(timestamp,
                       (SELECT TIMEDIFF(NOW(), timestamp)
                        FROM table
                        ORDER BY timestamp DESC
                        LIMIT 1))
于 2012-05-24T13:21:35.107 回答