java - MySQL从表中删除数据

标签 java mysql timestamp bigint

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

我的表格结构: enter image description here

最佳答案

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

DELETE
FROM   EmailMainTable 
WHERE  `timestamp` > DATE_SUB(NOW(), INTERVAL 8 DAY);

关于java - MySQL从表中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336875/

相关文章:

java - 如何访问列表中的对象方法?

php - 如何更改 CRUD Admin Generator 的数据表标题名称

java - 为什么Timestamp在单元测试中打印运行模型和调试模型之间的差异?

timestamp - TcpDump:显示pcap文件的绝对时间戳(日期和时间)

java - Println测试用例: println and expected output are the same,但测试失败

java - 有效的 Java 项目 11 : Override clone Judiciously

java - 安卓工作室-Java JVM

php - mysql_num_rows 抛出警告并且不继续

php - 我如何从 SQL 数据库 [PHP] 中提取某些东西的值?

r - 将时间戳切成 R 中的数字槽