我正在尝试编写一个查询,该查询会针对当天的给定股票代码发出股票数据。我的基础模型在日期时间字段中记录日期和时间。目前,我试图通过自动收报机和time_stamp进行查询。
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
但是当执行此操作时,我收到错误:
db.func.date()
我不确定为什么我会这样,因为不是{{1}}施法?
答案 0 :(得分:1)
您已将filter_by()
和filter()
混合在一起。请参阅What's the difference between filter and filter_by in SQLAlchemy?和Flask-SQLAlchemy - Greater than or equal to。简而言之,您将time_stamp
的相等性与产生布尔值的表达式进行比较,结果查询可能如下所示:
... WHERE ticker = :ticker AND time_stamp = (DATE(time_stamp) = :date) ...
相反:
Stock.query.\
filter_by(ticker=ticker).\
filter(db.func.date(Stock.time_stamp) == date.today()).\
order_by(Stock.time_stamp)