如何使用SQLAlchemy过滤日期时间字段?
问题描述:
我已经写了下面的SQLAlchemy查询:如何使用SQLAlchemy过滤日期时间字段?
db.get_session().query(Order, Order.created, Order.symbol).filter(Order.symbol=='GE').all()
我试图做的是就是拿不到的地方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()
但它不起作用(没有结果)。
我在做什么错?
答
使用func.date()它解决
from sqlalchemy import func
db.get_session().query(Order, Order.created, Order.symbol).filter(func.date(Order.created) == '2017-02-03').all()
这是因为订单日期包括时间,所以你需要使用'范围compare'而不是'=' – Enix