2012-01-09 2 views
0

pyodbc를 사용하여 Oracle 데이터베이스의 특정 기준과 일치하는 날짜를 리턴하려고합니다.cursor.execute select 명령을 사용하여 pyodbc에서 날짜 리턴하기

X = cursor.execute ("" "표 곳에서 열을 선택 예를 들어, 내가이 일을하고있어이 작업을 수행하려면 년 1 월 1 일 2010 년과 2011 년 1 월 1 일 사이의 모든 날짜를 얻으려면 OutputDate> '2010/01/01'와 OutputDate < '2011/01/01' "" "내가 Access 데이터베이스를 사용했지만, 지금은 나에게이 오류 줄 때 일 유사

뭔가 :

pyodbc을 .DataError : ('22007', [22007] [Microsoft] [Oracle 용 ODBC 드라이버] [Oracle] ORA-01861 : literal이 형식 문자열 (1861) (SQLExecDirectW)과 일치하지 않습니다. ')

Windows 7이고 사용중인 드라이버가 오라클 용 Microsoft ODBC입니다 (오류로 인해 알 수 있습니다)

"리터럴이 형식 문자열과 일치하지 않습니다"는 의미는 사용할 수 없다는 의미입니다. < 및> 날짜가이 데이터베이스에 있습니까? 누구든지 나를 도울 수 있을까?

덕분에 많이, 알렉스

답변

1

리터럴이 형식 문자열 당신이 날짜와 문자열을 비교하기 위해 노력하고 있음을 의미 일치하지 않습니다. 쿼리를 다음과 같이 변경하면 제대로 작동합니다. 물론 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') 

는 작동하도록 comparisions뿐만 아니라 날짜에이를 전송하는 데 최선의 경우의 날짜가 아닙니다.

이 상황에서 사용할 수있는 between 연산자에 유의하십시오.

오라클 데이터 유형 목록이 있습니다. here; 이 사이트는 모든 것에 적합합니다.

파이썬에서 오라클과 통신하는 데 나는 cx_Oracle을 선호한다고 덧붙여 야합니다. 그것은 단지 개인적인 취향입니다.

+0

완벽! 나는 to_date ('% s/12/31', 'yyyy/mm/dd')와 to_date ('% s/01/01') 사이에 OutputDate가있는 x = cursor.execute (" , 'yyyy/mm/dd') "" "% (yr1, yr2) –