java – MySQL从表中删除数据

我在我的表的一列中有时间戳值.我需要保留上周的所有数据并删除表中的其余数据(这不属于最近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

我桌子的结构:

解决方法:

由于您将时间戳转换为varchars(使用date_format),因此将按字典顺序进行比较,这不是您想要的行为.只需删除格式:

DELETE
FROM   EmailMainTable 
WHERE  `timestamp` > DATE_SUB(NOW(), INTERVAL 8 DAY);
上一篇:模板 - 高精度整数


下一篇:AcWing 114. 国王游戏(贪心)