使用pandas.read_sql使用参数查询数据库



也提出了类似的问题。目标是创建此处描述的功能:

def DB_Query(d1, d2):
conn = pyodbc.connect('DSN=DATASOURCE')
tbl = "SELECT TableA.Field_1 
FROM TableA 
WHERE TableA.Date>=? AND TableA.Date<=?"
df_tbl= pd.read_sql_query(tbl, conn, params = (d1,d2))
conn.close
return df_tbl

这适用于带有SQL Server驱动程序的数据库,但不适用于Microsoft ODBC for Oracle驱动程序。

当我给出例如d1 = '2020-02-20'd2 = '2020-02-25'时,我得到错误('HY004', '[HY004] [Microsoft][ODBC Driver Manager] SQL data type out of range (0) (SQLBindParameter)')

我知道在Oracle中,您需要DATE 'YYYY-MM-DD'来表示日期,这与SQL server不同,在SQL server中您可以只使用'YYYY-MM-DD'

我尝试在?前面添加DATE,但不起作用。有什么想法吗?

在此处找到解决方案。只需将d1定义为date(2020,02,20)即可。

如何在pyODBC查询中参数化日期戳?

相关内容

  • 没有找到相关文章

最新更新