【发布时间】:2020-10-15 06:19:21
【问题描述】:
我有一个非常简单的 Microsoft SQL 查询,我正在尝试将其转换为 SQLAlchemy。
我在这里阅读了文档:https://docs.sqlalchemy.org/en/13/core/tutorial.html#functions。然后,我尝试了几件事,包括 Python 日期时间,但作为 SQLAlchemy 初学者,我似乎仍然缺少一些东西。
MSSQL 代码:
SELECT flight_ID FROM
flight_table
WHERE FlightStartTime < DATEADD(day, -1, GETDATE())
SQLAlchemy 代码:
from sqlalchemy import func
table_ref = flight_table # Used reflection
num_day = -1
stmt = select([table_ref.c.flight_ID])
where_column = flight_table.columns.FlightStartTime
stmt = stmt.where(
where_column < func.dateadd(func.day(), num_day,
func.getdate())
)
with self.engine.connect() as conn:
output = conn.execute(stmt).fetchall()
我得到的错误如下:
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42000', '[42000] [Microsoft][ODBC SQL Server 驱动程序 13][SQL 服务器]day 函数需要 1 个参数。 (174) (SQLExecDirectW);
该错误是可以理解的,因为我需要找到 Microsoft SQL 查询中定义的“day”的 SQLAlchemy 等效项。
任何指针将不胜感激。
谢谢。
【问题讨论】:
-
this thread 处理类似的问题,它可能会帮助你
-
感谢您的提及。是的,我在发帖前看过了。它没有解决有关 Microsoft SQL 查询中定义的“day”的 SQLAlchemy 等效项的主题。
标签: python sql-server sqlalchemy