删除特定日期之前的记录

问题描述 投票:0回答:6

如何从 MySQL 表中删除特定日期之前的所有记录,其中日期列采用 DATETIME 格式?

日期时间示例为

2011-09-21 08:21:22

mysql datetime delete-row
6个回答
164
投票
DELETE FROM table WHERE date < '2011-09-21 08:21:22';

27
投票

这帮助我根据不同的属性删除数据。这是危险的,因此请确保在执行此操作之前备份数据库或表:

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)

14
投票

直到昨天才显示结果

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)

0
投票

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

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

0
投票

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

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

并检查 sysdate 返回的格式。


0
投票

以上所有内容都不适合我。

从 report_viewed_product_index 中删除日期(

added_at
)< CURDATE();

仅删除昨天的最后 6 小时

从 report_viewed_product_index 中删除日期(

added_at
)< NOW() - INTERVAL 10 DAY;

不删除任何内容

选择日期(现在()-间隔 11 天) 给出“2025-01-10”

b 时间戳或 UTC 时移有问题吗?

我的数据库截图

© www.soinside.com 2019 - 2024. All rights reserved.