gpt4 book ai didi

Python SQL 数据库查询给出 "Too few parameters"错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:54 25 4
gpt4 key购买 nike

我有以下代码试图从 Access 数据库中提取多个 SQL 查询

import pyodbc
import datetime

conx = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Stuart\\PycharmProjects\\untitled\\Databases\\SandP.accdb;")

cursor=conx.cursor()

query=""" SELECT DISTINCT Date_ FROM Closing_prices
WHERE Date_ >= ? AND Date_ < ?"""

params1 = (datetime.date(2011, 8, 10), datetime.date(2014, 4, 30))
cursor.execute(query, params1)

dates = list()
for date in cursor:
dates.append(date[0])

for date in dates:
params2 = date
cursor = conx.cursor()

query= '''SELECT Volatility,Last_price FROM Volatility v,Closing_prices c WHERE c.Date_= ? and v.Date_=c.Date_'''
cursor.execute(query,params2)

for (vol,price) in cursor:
volatility=float(vol)
closing_price=float(price)
cursor.close()

cursor = conx.cursor()
if (date.weekday()==4):
nextDay=(date + datetime.timedelta(days=3))
else:
nextDay=(date + datetime.timedelta(days=1))

query= '''SELECT Date_,Time_, Close_ FROM Intraday_values WHERE (date = ? and time >= ?) or (date = ? and time <= ?)'''

params3 = (date,datetime.time(15, 30),nextDay,datetime.time(15, 14))
cursor.execute(query,params3)

最后一点抛出以下错误:

Traceback (most recent call last):
File "C:/Users/Stuart/PycharmProjects/untitled/Apache - Copy.py", line 67, in <module>
cursor.execute(query,params3)
pyodbc.Error: ('07002', '[07002] [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 6. (-3010) (SQLExecDirectW)')

请求试图从表中提取 Date_、Time_ 和 Close_ 项,因为它遍历之前创建的日期列表时传递给请求的日期,以及“15:30 之后”的截止时间对于“日期”和“15:14 之前”对于“日期+1”。

首先,当 SQL 请求中只有 4 个问号 (?) 时,为什么会期望有 6 个参数——我没有正确地形成这个吗?

此外,我尝试了 datetime.time 的参数创建。这也是错误形成的吗?

我有点不知所措!

最佳答案

更改查询后有效到

query= '''SELECT Date_,Time_, Close_
FROM Intraday_values
WHERE (Date_ = ? and Time_ >= ?)
OR (Date_ = ? and Time_ <= ?)'''

关于Python SQL 数据库查询给出 "Too few parameters"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28591632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com