如何在 SQLAlchemy 的 ORM 查询中添加数字?
How do I add numbers in a ORM query in SQLAlchemy?
我正在尝试使用 SQLAlchemy ORM 触发 DATEDIFF 查询,我需要在其中向DATEDIFF
的输出
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 as
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
returns aString
。您需要指定类型:
func.datediff(text("ss"), some_date, another_date, type_=Integer) + 1000
或强制使用 +
运算符:
func.datediff(text("ss"), some_date, another_date).op('+')(1000)
我正在尝试使用 SQLAlchemy ORM 触发 DATEDIFF 查询,我需要在其中向DATEDIFF
的输出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 as
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
returns aString
。您需要指定类型:
func.datediff(text("ss"), some_date, another_date, type_=Integer) + 1000
或强制使用 +
运算符:
func.datediff(text("ss"), some_date, another_date).op('+')(1000)