Python PostgreSQL WHERE条件与日期时间

Python PostgreSQL WHERE条件与日期时间,python,postgresql,where-clause,Python,Postgresql,Where Clause,我有一个postgres表,它有一个名为ts的列,其中包含一个时间戳 现在我想从表中选择timestemp等于特定时间戳的行,所以我决定在python代码中编写以下SQL语句 date_to_choose = '2020-04-22 06:34:08+00:00' cur.execute("""SELECT * FROM data ORDER BY ts DESC WHERE ts = TO_TIMESTAMP('{0}','YYYY-MM-

我有一个postgres表,它有一个名为ts的列,其中包含一个时间戳

现在我想从表中选择timestemp等于特定时间戳的行,所以我决定在python代码中编写以下SQL语句

date_to_choose = '2020-04-22 06:34:08+00:00'

cur.execute("""SELECT * FROM data 
            ORDER BY ts DESC 
            WHERE ts = TO_TIMESTAMP('{0}','YYYY-MM-DD HH:MI:SS+00:00')""".format(date_to_choose))
这将导致以下错误消息

---------------------------------------------------------------------------
SyntaxError                               Traceback (most recent call last)
<ipython-input-85-ed294a40a103> in <module>
      9 cur.execute("""SELECT * FROM data 
     10             ORDER BY ts DESC
---> 11             WHERE ts = TO_TIMESTAMP('{0}','YYYY-MM-DD HH:MI:SS+00:00')""".format(date_to_choose))
     12 
     13 

SyntaxError: syntax error at or near "WHERE"
LINE 3:             WHERE ts = TO_TIMESTAMP('2020-04-22 06:34:08+00:...
                    ^

有什么帮助吗?

我个人会尝试在ORDER之前添加WHERE子句。请尝试一下,如果有效,请发表评论。

我个人会尝试在订单前添加WHERE子句。请试用,如果有效,请发表评论。

order by必须位于子句不使用的where之后。SQL查询的格式。将参数指定给.execute as documented.order by必须在where clauseDon不在SQL查询中使用.format之后。将参数指定给.execute,如文档所示。我也尝试过,但在FileDSQLTransation中收到以下错误消息:当前事务被中止,在事务结束块之前忽略命令尝试在cur.execute之外传递format方法。不幸的是,也不起作用,同样的错误message@janwe:该错误与先前导致事务中止的问题有关。在cur.execute之前使用con.commit或con.rollback…啊,看起来更好了,现在我得到了InvalidDatetimeFormat:yyyyy详细信息的无效值{0}:值必须是整数。返回的日期似乎具有以下格式datetime.datetime2020、4、22、6、34、8,tzinfo=psycopg2.tz.FixedOffsetTimezoneoffset=0,name=None我也尝试过,并在FiledSqlTransaction中收到以下错误消息:当前事务中止,在事务块结束前忽略命令尝试传递format方法,不幸的是,在cur.execute.execute之外也不起作用,同样的错误message@janwe:该错误与先前导致事务中止的问题有关。在cur.execute之前使用con.commit或con.rollback…啊,看起来更好了,现在我得到了InvalidDatetimeFormat:yyyyy详细信息的无效值{0}:值必须是整数。返回的日期的格式如下:datetime.datetime2020,4,22,6,34,8,tzinfo=psycopg2.tz.FixedOffsetTimezoneoffset=0,name=None