删除PostgreSQL数据库中超过x天的表行



这个问题以前有人问过,也有人回答过,但我以前的回答有语法错误。也许我错过了什么?

query = "DELETE FROM currentvoltage WHERE timestamp < UNIX_TIMESTAMP(DATE_SUB(NOW() - INTERVAL 1 DAY))"
cursor.execute(query)

currentvoltage是表

timestampyyyy-mm-dd hh:mm:ss:ffff中带有时间戳的行

获取

42601语法错误"处于或接近";";1〃;1天

编辑:

在每个人的帮助下,使用了以下内容。

query = "DELETE FROM {} WHERE timestamp < NOW() - INTERVAL '{} DAY'".format(tableName, truncate)
cursor.execute(query)

注意:我从全局变量中提取表名和间隔

1 day放入报价(')

INTERVAL '1 DAY'

所以最后

query = "DELETE FROM currentvoltage WHERE timestamp < UNIX_TIMESTAMP(DATE_SUB(NOW() - INTERVAL '1 DAY'))"

注意,不存在函数UNIX_TIMESTAMP&PgSQL 中的DATE_SUB

最新更新