A был задан похожий вопрос . Цель состоит в том, чтобы создать описанную здесь функцию:
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 драйвером сервера, но не работает на Microsoft ODB C для 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'
до express даты, который отличается от сервера SQL, где вы можете просто использовать 'YYYY-MM-DD'
.
Я пытался добавить DATE
перед ?
, но не работает. Есть идеи?