มีการถามคำถามที่คล้ายกัน เป้าหมายคือการสร้างฟังก์ชันที่อธิบายไว้ที่นี่:
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 สำหรับไดรเวอร์ 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 ที่คุณสามารถใช้ 'YYYY-MM-DD'
ได้
ฉันได้ลองเพิ่ม DATE
ไว้หน้า ?
แล้ว แต่ไม่ได้ผล มีความคิดอะไรบ้าง?