ค้นหาฐานข้อมูลพร้อมพารามิเตอร์โดยใช้ 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 สำหรับไดรเวอร์ 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 ไว้หน้า ? แล้ว แต่ไม่ได้ผล มีความคิดอะไรบ้าง?


person idkanythingaboutcoding    schedule 26.02.2020    source แหล่งที่มา


คำตอบ (1)


พบวิธีแก้ปัญหาที่นี่ เพียงกำหนด d1 เป็น date(2020,02,20)

จะกำหนดพารามิเตอร์ Datestamp ในแบบสอบถาม pyODBC ได้อย่างไร

person idkanythingaboutcoding    schedule 26.02.2020