我想使用时间戳列表进行过滤。在SQL中,语法类似于
SELECT * FROM TABLE WHERE TABLE.QueryTimestamp IN ("2017-10-20 23:20:00", "2017-10-10 23:20:00")
QueryTimestamp列是Python中的日期时间。
我尝试使用以下内容,但未提供正确的答案。 ts_list是python日期时间值的列表。
session.query(TABLE).filter(TABLE.QueryTimestamp.in_(ts_list))).all()
答案 0 :(得分:1)
您应该使用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()
答案 1 :(得分:0)
我能够通过运行计数查询来获得所需的答案,其中ts_list是日期时间元素的列表
template <typename P1, typename... Ps>
constexpr auto pipe(P1 &&proc1, Ps &&...procs) {
using T = typename RevProc<P1>::ArgType;
using U = typename RevProc<P1>::RetType;
using V = typename RevProc<typename Last<Ps...>::Type>::RetType;
return Cont<Cont<Proc<T, V>>>([&](Cont<Proc<T, V>> &&pass) {
pipe(std::move(procs)...)([&](Proc<U, V> &&proc2) {
pipe(std::move(proc1), std::move(proc2))(std::move(pass));
});
});
}