2011-11-23 2 views
4

날짜를 기반으로 레코드를 DB로 검색하려고합니다. 그러나 검색은 월 단위로 이루어집니다. 즉 mm/yyyy이고 dd는 와일드 카드입니다.검색 날짜에 와일드 카드로 쿼리

Select ucid, uc_name, From (UC_Table1) 
where UC_Date like To_Date('11/*/2011','mm/dd/yyyy') 

이 나에게 다음과 같은 오류 제공 : ORA-01858을 : 숫자가 예상 된 위치 숫자가 아닌 문자가 발견 된, 그래서 분명히이 좋아하지 않는

내 검색 쿼리는 다음과 같습니다 * 또는 % 또는 _ 또는 ?을 dd 와일드 카드로 사용하십시오.

답변

4

와일드 카드는 함수 내에서와 같이 작동하지 않습니다. To_Date() 함수는 LIKE에 표시되기 전에 *을 구문 분석합니다. 고려 :

SELECT ucid, uc_name 
FROM UC_Table1 
WHERE UC_Date >= To_Date('11/01/2011', 'mm/dd/yyyy') 
    AND UC_Date < To_Date('12/01/2011', 'mm/dd/yyyy') 
+0

감사합니다. 내가 사용하고있는 쿼리는 다음과 같습니다. uCid, config_clob, Created_TS 선택 (Config_Clob) to_Char (Config_Clob.Created_TS, 'mmddyyyy')는 '11 % 2011 '을 좋아합니다. – sloggers1894

+0

테이블 크기에 관계없이 Adam이 (UC_Date에 대한 색인을 가지고) –

+0

@MatthewWatson이'@ sloggers1894'을 넣지 않고 제안 했으므로 메시지를 알리지 않습니다. 기본적으로 댓글을 달고있는 질문/답변을 소유 한 사람과 @name으로 지정한 사람을 한 명까지만 지정할 수 있습니다. –

관련 문제