0

我在 mqsql 数据库中有这个表

create table datedemo(logintime timestamp,updatedtime timestamp);

updatedtime 给出了用户最后一次活动的时间,我想执行一个查询

这样如果 updatedtime 和 now() 时间之间的差异大于某个值,例如(1000 秒)

下面的查询给出了时间戳的差异,但我想删除行,请帮忙

SELECT NOW(), updatedtime, NOW() - updatedtime AS diff
FROM datedemo
HAVING diff IS NOT NULL;
4

2 回答 2

0

请试试这个:

SELECT NOW(), updatedtime
FROM datedemo
WHERE updatedtime > NOW() - INTERVAL 1000 Second
;
于 2013-01-12T17:22:25.273 回答
0
DELETE FROM datedemo WHERE TIMESTAMPDIFF(SECOND, NOW(), updatedtime) > 1000

但是,我认为存储过期时间而不是更新时间会更好。我的意思是在更新时您插入的不是时间戳,而是 TIMESTAMPADD(SECOND, 1000, NOW()) 。这样,您只需进行一次数学运算,然后在检查您的问题时:

DELETE FROM datedemo WHERE expirestime < NOW()

我认为这样会更有效率。

于 2013-01-12T17:30:18.003 回答