如何根据日期列从数据库 table 中删除超过 30 天的记录

How to delete records from database table older than 30 days with based on date column

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

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

我正在使用 SQLite 数据库。

declare @end date = DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, -1)

DELETE FROM table1 WHERE date_column < @end 

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

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

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

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