关于如何删除超过30天的所有行有很多问题,但我找不到与我相同的任何内容,所以我可以修复它
我需要删除一些超过30天的邮件记录,带有日期的列名称为sentOn,该列中的行看起来像这样2018-01-12 12:25:00 如何格式化我的查询以删除包含超过30天的那些记录的表中的所有记录?
DELETE FROM messages WHERE sentOn < '2018-02-21 00:00:00';
这会有用吗?
编辑: 上面的查询工作,但非常非常缓慢的任何方式,使其更快?我试过now()但它给出了函数错误的错误
答案 0 :(得分:4)
以下代码将删除超过30天的邮件记录
DELETE FROM messages WHERE sentOn < NOW() - INTERVAL 30 DAY;
MySQL中的NOW()
方法用于随时间选择当前日期。 INTERVAL 30 DAY
用于从当前日期减去30天。
完成上述查询后,您可以使用SELECT
语句检查当前表。谢谢!
答案 1 :(得分:-2)
DELETE FROM messages WHERE sentOn > '2018-02-21 00:00:00';
您要删除大于&#39; 2018-02-21 00:00:00&#39;的邮件。您可以通过选择* FROM消息来检查逻辑是否正确WHERE sentOn&gt; &#39; 2018-02-21 00:00:00&#39;。