为什么我的这个flask-sqlalchemy查询失败了

时间:2018-03-23 12:09:56

标签: python sqlalchemy

我正在尝试编写一个查询,该查询会针对当天的给定股票代码发出股票数据。我的基础模型在日期时间字段中记录日期和时间。目前,我试图通过自动收报机和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}}施法?

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)