2012-01-09 45 views
0

我試圖使用pyodbc來返回與Oracle數據庫中的某些條件匹配的日期。例如,我想2010年1月,和1月1日,2011年 之間的所有日期,要做到這一點,我這樣做:使用cursor.execute選擇命令在pyodbc中返回日期

X = cursor.execute(「」「選擇表,其中 列OutputDate> '2010/01/01' 和OutputDate < '2011/01/01' 「」」

類似的東西,當我使用Access數據庫,但現在它給了我這個錯誤的工作:

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

我在Windows 7上,我使用的驅動程序是Oracle的Microsoft ODBC(我想這是錯誤很明顯)

「文字與格式字符串不匹配」是否意味着我無法使用<和>在這個數據庫上的日期?任何人都可以幫我嗎?

非常感謝,亞歷克斯

回答

1

文字不匹配格式字符串意味着你要比較日期和字符串。更改您的查詢以下,它應該工作。

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是不是在這種情況下,最好該轉移到一個日期,以及爲您comparisions工作的日期。

注意between運算符,您可以在這種情況下使用它。

有一個Oracle數據類型列表here;該網站對一切都很好。

我應該補充一點,我更喜歡cx_Oracle與python進行通信;儘管這只是個人偏好。

+0

完美!我將它替換爲x = cursor.execute(「」「從表格中選擇列,其中OutputDate位於to_date('%s/12/31','yyyy/mm/dd')和to_date('%s/01/01' ,'yyyy/mm/dd')「」「%(yr1,yr2) – 2012-01-09 23:37:48

相關問題