Python 使用cursor.execute select命令在pyodbc中返回日期
我试图使用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文本与格式字符串不匹配表示您正在尝试比较日期和字符串。将查询更改为以下内容,它应该可以工作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
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)