Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 使用cursor.execute select命令在pyodbc中返回日期_Python_Oracle_Datetime_Pyodbc - Fatal编程技术网

Python 使用cursor.execute select命令在pyodbc中返回日期

Python 使用cursor.execute select命令在pyodbc中返回日期,python,oracle,datetime,pyodbc,Python,Oracle,Datetime,Pyodbc,我试图使用pyodbc从Oracle数据库返回符合某些条件的日期。例如,我想获取2010年1月1日和2011年1月1日之间的所有日期。 为此,我正在这样做: x=游标。执行(“”选择 表中的列,其中OutputDate>'2010/01/01'和OutputDate

我试图使用pyodbc从Oracle数据库返回符合某些条件的日期。例如,我想获取2010年1月1日和2011年1月1日之间的所有日期。 为此,我正在这样做:

x=游标。执行(“”选择 表中的列,其中OutputDate>'2010/01/01'和OutputDate<'2011/01/01'”

当我使用Access数据库时,类似的方法也起了作用,但现在它给了我以下错误:

pyodbc.DataError:('22007','[22007][Microsoft][Oracle的ODBC驱动程序][Oracle]ORA-01861:文本与格式字符串(1861)(SQLExecDirectW)不匹配)

我使用的是Windows7,我使用的驱动程序是MicrosoftODBCforOracle(我想从错误中可以明显看出这一点)

“文字与格式字符串不匹配”是否意味着我不能在此数据库中使用日期<和>?有人能帮我吗

非常感谢, Alex

文本与格式字符串不匹配表示您正在尝试比较日期和字符串。将查询更改为以下内容,它应该可以工作

select column
  from table 
 where outputdate between to_date('2010/01/01','yyyy/mm/dd') 
       and to_date('2011/01/01','yyyy/mm/dd')
当然,除非
outputdate
不是一个日期,在这种情况下,最好将其转换为一个日期,以便进行比较

请注意运算符,您可以在这种情况下使用它

这里有一个Oracle数据类型列表;该站点适合所有方面


我应该补充一点,我更喜欢从python与Oracle通信,尽管这只是个人偏好。

Perfect!我用x=cursor.execute替换了它(“从表中选择列,其中OutputDate介于to_date(“%s/12/31”,“yyyy/mm/dd”)和to_date(“%s/01/01”,“yyyy/mm/dd”)之间(yr1,yr2)