2012-09-04 3 views
1

데이터를 가져 오기 위해 Oracle 테이블에서 작업 중입니다. 쿼리 중 하나에서 나는 '어디에서'날짜 사이에 필터링을 사용하고 있습니다. 내가 오류를 얻고있다Oracle 날짜 형식 오류

To_Date(VDATU,'DD-MON-YYYY') >= '03-Jun-2012' 
AND To_Date(VDATU,'dd-mon-yy') <= '04-Sep-2012' 

, 내가 ('DD-MM-YY')를 사용하지만 여전히 같은 오류를주고있다 시도

ORA-01861: literal does not match format string 

. 무엇이 문제일까요 ??

+0

이 오류는 'To_Date' 호출의 결과로 또는 문자열 (예 : '03-Jun-2012')을 날짜로 암시 적으로 변환 한 결과 발생할 수 있습니다. –

답변

2

VDATU (아마도 VARCHAR2 일 것입니다)을 날짜로 변환하려고합니다.

한 곳에서는 DD-MON-YYYY이고 다른 한 곳에서는 dd-mon-yy입니다.

어느 쪽입니까? VDATU은 둘 다 유효하지 않습니다.

+0

예 varchar2입니다. '01122011'형식입니다. 변환에 사용할 올바른 형식은 무엇입니까 ?? – Olivarsham

+0

예가 모호하지만 'ddmmyyyy'(12 월 1 일) 또는 'mmddyyyy'(12 월 1 일) 중 하나입니다. –

2

당신은 StringDATE을 비교하고, 대신 시도하십시오 경우 VDATU에서

To_Date(VDATU,'DD-MON-YYYY') >= To_Date('03-JUN-2012','DD-MON-YYYY') 
AND To_Date(VDATU,'dd-mon-yy') <= To_Date('04-SEP-2012','DD-MON-YYYY') 

이미 날짜, 당신은 그것을 to_date 변환 안, 당신이해야 할 모든은 다음과 같습니다

VDATU >= To_Date('03-JUN-2012','DD-MON-YYYY') 
AND VDATU <= To_Date('04-SEP-2012','DD-MON-YYYY')