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()
答
您应该过滤使用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()
我认为你应该使用session.query(表).filter的列表,以获得所需答案(表.QueryTimestamp.in_(ts_list))。所有()。代码中有一个额外的“)”。 –