2017-10-20 3 views
0

タイムスタンプのリストを使用してフィルタリングしたいと思います。 SQLでは構文は次のようになりますSqlalchemy python datetimeのリストに対して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

のリストでカウントクエリを、実行することにより、必要な答えを得ることができました.QueryTimestamp.in_(ts_list))。all()。あなたのコードに余分な ")"があります。 –

答えて

1

これらはtimestampzあるので、あなたはor_演算子を使用して結果をフィルタリングする必要があります。

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() 
0

私は.filter(TABLE ts_listは、私はあなたがsession.query(TABLE)を使用すべきだと思うの日時要素

session.query(TABLE).filter(TABLE.QueryTimestamp.in_(ts_list)).count() 
関連する問題