如何使用SQLAlchemy过滤日期时间字段?

问题描述:

我已经写了下面的SQLAlchemy查询:如何使用SQLAlchemy过滤日期时间字段?

db.get_session().query(Order, Order.created, Order.symbol).filter(Order.symbol=='GE').all() 

将会产生一个像这样的输出: enter image description here

我试图做的是就是拿不到的地方Order.created == '2017-02-03'。我试过db.get_session().query(Order, Order.created, Order.symbol).filter(Order.symbol=='GE').filter(Order.created=='2017-02-03').all()但它不起作用(没有结果)。

我在做什么错?

+0

这是因为订单日期包括时间,所以你需要使用'范围compare'而不是'=' – Enix

使用func.date()它解决

from sqlalchemy import func 
db.get_session().query(Order, Order.created, Order.symbol).filter(func.date(Order.created) == '2017-02-03').all()