如果时间戳早于 4 小时,我想删除数据库中的所有记录。
所以我的逻辑是获取当前时间的小时并从数据库中保存的时间戳中获取小时并减去以查看是否大于4。如果大于4则删除记录。
这是一个正在进行的代码,不确定它是否正确。
DELETE FROM posts
WHERE id IN
(SELECT *
FROM posts
WHERE (HOUR(CURRENT_TIMESTAMP) - HOUR(time_published)) > 4)
)
如果有什么区别的话,我正在使用 MySQL。
最佳答案
为什么不简单一点
delete
from posts
where timestampdiff(hour, current_timestamp, time_published)>=4
请注意,比较日期字段的小时部分不会达到您的预期。考虑比较 1985 年 1 月 21 日 10:00
和 1985 年 1 月 22 日 11:00
。您原来的条件会失败(1 小时),但实际上两者之间相差 25 小时。
关于mysql - 如果时间超过 4 小时,则从数据库中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31948809/