如何使用pyodbc发出包含python变量作为参数的sql查询?

mum43rcc  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(485)

我正在编写一个程序,搜索数据库,并根据用户从两个日历(在gui上)中的选择将数据输入excel文件。我有一个开始日期和结束日期,我将这些变量作为参数传递到一个函数中,用于我的sql查询。
如何格式化sql查询以从给定日期中选择值?
这是我目前的密码,

def load_database(startDate, endDate):

    conn = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
    'Server=DESKTOP-KVR7GNJ\SQLBULKROLL;' 
    'Database=db_MasterRoll;'
    'UID=sa;'
    'PWD=Z28@6420d')

    wb = Workbook()
    ws = wb.active
    ws.title = "Star Ledger"
    cursor = conn.cursor()
    cursor.execute('SELECT ID, BarCode, DateTm, EntryDoor FROM dbo.tab_Rolls WHERE (DateTm >= @startDate) AND (DateTm <= @endDate)')

按钮通过运行函数“call \u db \u code()”调用此代码:

def call_db_code():
    firstDate = start_dateCalendar.selection_get()
    print(firstDate)

    finalDate = end_dateCalendar.selection_get()
    print(finalDate)
    load_database(firstDate, finalDate)
lb3vh1jj

lb3vh1jj1#

使用 ? 作为查询中的占位符,并提供一个值元组来替换它们。

cursor.execute('SELECT ID, BarCode, DateTm, EntryDoor FROM dbo.tab_Rolls WHERE (DateTm >= ?) AND (DateTm <= ?)', (startDate, endDate))

请参见中的示例 cursor.execute() 文档。

相关问题