如何在SQLAlchemy中的ORM查询中添加数字



我正在尝试使用SQLAlchemy ORM启动DATEDIFF查询,其中我需要向DATEDIFFTR的输出添加一个变量

ORM:

query = session.query(func.datediff(text("ss"), some_date, another_date) + 1000).all()

所需SQL:

SELECT DATEDIFF(SS, some_date, another_date) + 1000 FROM Table

执行上述ORM查询将SQL输出为

SELECT DATEDIFF(SS, some_date, another_date) || '' AS anon_1 FROM Table

并抛出ProgrammingError"Implicit conversion from datatype 'VARCHAR' to 'INT' not allowed. Use the CONVERT function to run this query"

我尝试过将label()func.datediff()一起使用,但没有产生预期的结果。如何使此查询工作?

SQLAlchemy假设func.datediff返回一个String。您需要指定类型:

func.datediff(text("ss"), some_date, another_date, type_=Integer) + 1000

或强制+操作员:

func.datediff(text("ss"), some_date, another_date).op('+')(1000)

相关内容

  • 没有找到相关文章

最新更新