我的表的一列中有时间戳值。我需要保留上周的所有数据并删除表中的其余数据(不属于最近 7 天)。我该怎么做?
下面给出了我尝试过的查询。
DELETE * FROM EmailMainTable WHERE DATE_FORMAT(timestamp, '%Y-%m-%d %H:%i:%s') >
DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'), INTERVAL 8 DAY);
注意:我的文件名是时间戳,我把它转换成bigint
我的表格结构:
最佳答案
由于您将时间戳转换为 varchar(使用 date_format
),它们将按字典顺序 进行比较,这不是您想要的行为。只需删除格式:
DELETE
FROM EmailMainTable
WHERE `timestamp` > DATE_SUB(NOW(), INTERVAL 8 DAY);
关于java - MySQL从表中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336875/