如何在特定日期之前删除MySQL表中的所有记录,其中日期列为DATETIME格式?
日期时间示例为2011-09-21 08:21:22
。
答案 0 :(得分:96)
DELETE FROM table WHERE date < '2011-09-21 08:21:22';
答案 1 :(得分:19)
这有助于我根据不同的属性删除数据。这很危险,因此请确保在执行此操作之前备份数据库或表:
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)
答案 2 :(得分:8)
直到昨天显示结果
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)
答案 3 :(得分:0)
这是使用定义的列/表名的另一个示例。
DELETE FROM jos_jomres_gdpr_optins WHERE `date_time` < '2020-10-21 08:21:22';