2013-07-05 3 views
0

내 쿼리입니다 : 두 테이블에서은 "ORA-01861 형식 문자열과 일치하지 않는 문자"다음

SELECT A.WEEK, B.NAME, A.GENDER 
FROM TABLE A, TABLE2 B 
WHERE A.WEEK BETWEEN TO_CHAR (TO_DATE ('2013051'), 'yyyymmw') 
      AND TO_CHAR (TO_DATE ('2013063'), 'yyyymmw') 
    AND A.WEEK = B.WEEK; 

, WEEK 열의 데이터로 기록됩니다 '2013051'월의 첫째 주와 같은, 또는 ' JUNE의 제 3 주로서의 2013063 '. WEEK 열의 다른 모든 데이터는 동일한 형식으로 기록되며 7 자로 구성됩니다. 마지막 글자는 그것이 속한주의 숫자를 나타냅니다. 나는이 쿼리를 실행하면

, 그것은 보여줍니다

ORA-01861 형식 문자열이

이 사람이 나를 도와 줄 수 일치하지 않는 문자?

+0

어떤 SQL을 사용하고 있습니까? 오라클, 그렇 겠지? – Tim

+0

예 Oracle을 사용합니다 – user2470075

+0

질문에 Oracle 태그를 추가했습니다. 다양한 구현에서 차이가 있으므로 사용하는 SQL의 특징을 지정하는 것이 좋습니다. – Tim

답변

4

대괄호가 잘못되었습니다.

SELECT A.WEEK, B.NAME, A.GENDER 
FROM TABLE A, TABLE2 B 
WHERE A.WEEK BETWEEN TO_CHAR (TO_DATE ('2013051', 'yyyymmw')) 
      AND TO_CHAR (TO_DATE ('2013063', 'yyyymmw')) 
    AND A.WEEK = B.WEEK; 

TO_DATE 함수에는 변환 할 문자열과 형식 문자열이라는 두 개의 인수가 필요합니다.

1

여기에 테스트 할 오라클이 없지만 TO_DATE 문서를 확인하면 포맷이 누락 된 것처럼 보입니다. 저는 여기에 변환을 시도 할 것입니다 방법입니다

여기
WHERE A.WEEK BETWEEN TO_CHAR (TO_DATE ('2013051','yyyymmw')) 
      AND TO_CHAR (TO_DATE ('2013063', 'yyyymmw')) 

내가 확인 한 두 개의 링크입니다 :

http://www.techonthenet.com/oracle/functions/to_char.php http://www.techonthenet.com/oracle/functions/to_date.php

그것이 도움이되기를 바랍니다.

관련 문제