Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pyodbc处理Access中的日期时出现“参数太少”错误_Python_Sql_Ms Access_Ms Access 2013_Pyodbc - Fatal编程技术网

Python 使用pyodbc处理Access中的日期时出现“参数太少”错误

Python 使用pyodbc处理Access中的日期时出现“参数太少”错误,python,sql,ms-access,ms-access-2013,pyodbc,Python,Sql,Ms Access,Ms Access 2013,Pyodbc,我正在使用pyodbc导入的Python 我正在使用Microsoft Office 2013 64位 我试图查询一个accdb数据库,以选择一个范围内的不同日期,并将它们分配给一个游标,这样我就可以将它们附加到一个列表中 我的Access数据库有一个名为Closing_prices的表和一个名为Date_的列,该列的数据类型为Date/Time 我的代码如下: cursor=conx.cursor() query="select distinct Date_ FROM Closing_pric

我正在使用pyodbc导入的Python

我正在使用Microsoft Office 2013 64位

我试图查询一个accdb数据库,以选择一个范围内的不同日期,并将它们分配给一个游标,这样我就可以将它们附加到一个列表中

我的Access数据库有一个名为Closing_prices的表和一个名为Date_的列,该列的数据类型为Date/Time

我的代码如下:

cursor=conx.cursor()
query="select distinct Date_ FROM Closing_prices where Date_ >= '10/8/2011' and Date_ < '30/04/2014'"
cursor.execute(query)
dates=list()
for date in cursor:
   dates.append(date[0])
我得到以下输出作为示例:

(datetime.datetime(2014, 3, 24, 0, 0), )
(datetime.datetime(2014, 3, 25, 0, 0), )
(datetime.datetime(2014, 3, 26, 0, 0), )
(datetime.datetime(2014, 3, 27, 0, 0), )
我对Python比较陌生,甚至对SQL查询也比较陌生,所以请有人指出我哪里出了问题,也许我可以修改代码来帮助我根据需要将不同的日期附加到列表中

非常感谢。

省去了查找适用日期分隔符的麻烦,并且 促进良好的编码实践 您只需使用如下参数化查询:

db=pyodbc.connectconnStr crsr=db.cursor sql= 从收盘价中选择不同的日期,其中日期>=?和日期? params=datetime.date2011,8,10,datetime.date2014,4,30 crsr.executesql,参数
如果直接在Access中运行查询,它是否按预期工作?是的,当我使用:选择日期>=2011年8月10日和日期<2014年4月30日的不同收盘价日期并运行查询时,我会在SQL查询窗口中正确选择显示的日期。我在某个地方读到Access SQL查询需要使用而不是单引号。Gord Thomson非常感谢您,这非常有效!!这使得你现在有好几次在不同的问题上帮助我…我真的很感谢你抽出时间。您好。@GordThomson我提出了以下与此问题密切相关的问题-我已成功地在两个SQL查询中实现了您的建议,但在第三个查询中遇到了问题-无论如何,您是否可以快速查看一下?一如既往地感激……问候。
query="select distinct Date_ FROM Closing_prices where Date_ >= '10/8/2011 00:00:00' and Date_ < '30/04/2014 00:00:00'"
cursor = conx.cursor()
query="select Date_ FROM Closing_prices"
cursor.execute(query)

for row in cursor:
    print row

print type(row[0])
(datetime.datetime(2014, 3, 24, 0, 0), )
(datetime.datetime(2014, 3, 25, 0, 0), )
(datetime.datetime(2014, 3, 26, 0, 0), )
(datetime.datetime(2014, 3, 27, 0, 0), )