在特定日期之前删除记录

如何从 MySQL 表中删除某个日期之前的所有记录,其中的日期列是 DATETIME 格式的?

日期时间的一个示例是 2011-09-21 08:21:22

179472 次浏览
DELETE FROM table WHERE date < '2011-09-21 08:21:22';

这有助于我删除基于不同属性的数据。这样做很危险,所以在做之前一定要备份数据库或表:

mysqldump -h hotsname -u username -p password database_name > backup_folder/backup_filename.txt

现在可以执行删除操作:

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 1 DAY)

删除6个月前的资料:

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 6 MONTH)

直到昨天才有结果

WHERE DATE(date_time) < CURDATE()

显示10天的结果

WHERE date_time < NOW() - INTERVAL 10 DAY

在10天内显示结果

WHERE DATE(date_time) < DATE(NOW() - INTERVAL 10 DAY)

这些对你有用

你可以找到这样的约会

SELECT DATE(NOW() - INTERVAL 11 DAY)

这是另一个使用已定义的列/表名的示例。

DELETE FROM jos_jomres_gdpr_optins WHERE `date_time` < '2020-10-21 08:21:22';

如果您正在寻找 Oracle SQL,那么它可能会有所帮助:

Delete from table_name WHERE column_name < sysdate - INTERVAL '10' DAY

检查 sysdate 返回的格式。