如何根据日期列从数据库 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, '/', '-')
这是我在下面使用的 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, '/', '-')