sqlalchemy python如何查询使用IN日期时间列表

问题描述:

我想过滤使用时间戳列表。在SQL中,语法就像sqlalchemy python如何查询使用IN日期时间列表

SELECT * FROM TABLE WHERE TABLE.QueryTimestamp IN ("2017-10-20 23:20:00", "2017-10-10 23:20:00") 

列QueryTimestamp是Python中的datetime。

我尝试使用以下不提供正确答案。 ts_list是python日期时间值的列表。

session.query(TABLE).filter(TABLE.QueryTimestamp.in_(ts_list))).all() 
+0

我认为你应该使用session.query(表).filter的列表,以获得所需答案(表.QueryTimestamp.in_(ts_list))。所有()。代码中有一个额外的“)”。 –

您应该过滤使用or_运营商,因为这些都是timestampz结果。

from sqlalchemy import or_, cast 
q = session.query(TABLE).filter(
     or_(TABLE.QueryTimestamp == cast("2017-10-20 23:20:00", DateTime), 
      TABLE.QueryTimestamp == cast("2017-10-10 23:20:00", DateTime)) 
    ).all() 

我能够运行数查询,其中ts_list为datetime元素

session.query(TABLE).filter(TABLE.QueryTimestamp.in_(ts_list)).count()