如何从 MySQL 表中删除某个日期之前的所有记录,其中的日期列是 DATETIME 格式的?
日期时间的一个示例是 2011-09-21 08:21:22。
2011-09-21 08:21:22
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 返回的格式。