Mysql,实现datetime列

时间:2012-05-24 13:16:54

标签: mysql database

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

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

这可以用一个查询吗?

2 个答案:

答案 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))