首页 > 解决方案 > psycopg2 sql.SQL 如何实现时间戳> now() - INTERVAL '8 days'?

问题描述

需要从多个表中选择新的记录,超过 8 天

这不起作用:(

    self._getRawData = sql.SQL("SELECT * FROM {} WRERE {} > NOW() - INTERVAL {}")
    ...
    cur = self._conn.cursor()
    cur.execute(self._getRawData.format(sql.Identifier('MyTS.MyTable'), \
                                        sql.Identifier('Timestamp'), \
                                        sql.Identifier('8 days')))

psycopg2.errors.SyntaxError:“时间戳”处或附近的语法错误

下面工作正常,但我想要 2 为几个表实现 sql.SQL - 有什么建议吗?

    statement = "SELECT * FROM \"MyTS\".\"MyTable\" WHERE \"Timestamp\" > NOW() - INTERVAL                 \'8 days\'"
    cur = self._conn.cursor()
    cur.execute(statement)

更新!解决了!Thabks 4评论中的建议!

    self._getRawData = sql.SQL("SELECT * FROM {}.{} WHERE {} > NOW() - INTERVAL {}")
    ...
    sql.Literal('8 days')))

标签: psycopg2

解决方案


推荐阅读