首页 > 解决方案 > 如何使用基于日期列从数据库表中删除超过 30 天的记录

问题描述

这是我在下面使用的python代码。但它不起作用并且没有显示任何错误。

delquery = "DELETE FROM table1 WHERE date_column < date ('now', '-30 day')"        
conn.execute(delquery)

我正在使用 SQLite 数据库。

标签: sqlsqlitesql-deletesqldatetime

解决方案


如果格式是yyyy/MM/dd您必须将其更改为yyyy-MM-dd,因为这是 SQLite 中日期的唯一有效可比较格式:

DELETE FROM table1 WHERE REPLACE(date_column, '/', '-') < date('now', '-30 day')

或者甚至更好地更新表格,因此格式正确,并且每次要比较日期时date_column都不需要该函数:REPLACE()

UPDATE table1
SET date_column = REPLACE(date_column, '/', '-')

推荐阅读