【发布时间】:2020-02-24 21:18:48
【问题描述】:
我正在使用 pyodbc 从 SQL Server 获取数据,使用此处显示的脚本:
conn = pyodbc.connect('DSN=DATASOURCE')
tbl = "SELECT TableA.Field_1 \
FROM TableA \
WHERE TableA.Date>=2019/04/01"
SQL_Query = pd.read_sql_query(tbl, conn)
conn.close
现在我想把这个查询变成一个 Python 函数,在这里我可以将上面示例中的日期 (2019/04/01) 更改为函数变量。
我发现 pyodbc 提供了parameterization,但都是在cursor.execute 函数的上下文中。
理想情况下,我想创建一个这样的函数:
def DB_Query(date):
conn = pyodbc.connect('DSN=DATASOURCE')
tbl = "SELECT TableA.Field_1 \
FROM TableA \
WHERE TableA.Date>=?", date
SQL_Query = pd.read_sql_query(tbl, conn)
conn.close
return SQL_Query
显然这不起作用,因为tbl 必须是普通字符串,但是是否可以将pyodbc 的参数化功能与pandas 的pd.read_sql_query 或pd.read_sql 一起使用?
【问题讨论】:
标签: sql-server pandas pyodbc