2011-11-23 44 views
4

我正在嘗試在數據庫中搜索基於日期的記錄。但搜索基於月和年。即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

通配符在函數內不起作用。在LIKE有機會看到它之前,To_Date()函數會分析出*。考慮:

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')like '11%2011' – sloggers1894

+0

如果表的大小是任意的,那麼您會更好像Adam建議的那樣做(在UC_Date上有一個索引) –

+0

@MatthewWatson沒有放置「@sloggers1894」,他們不會收到你的消息通知。默認情況下,只有擁有您要評論的問題/答案的人員以及最多由@name指定的人員。 –