2015-05-08 50 views
0

我看到一個表的數據值爲18-May-2012。但是,當我查詢使用下面的查詢尋找相同的日期,沒有結果可用。當使用日期查詢時,SQL查詢不會顯示結果

Select Submit_Dt From Siebel.S_Order_Dtl 
where submit_dt = '18-May-2012' 

你能幫我解決這個問題嗎?

+0

確保它不是日期列... –

+1

1 NLS(http://docs.oracle.com/cd/A84870_01/doc /server.816/a76966/ch1.htm)格式可能不同。 2它可能有一個時間組件,所以試試'where trunc(Submit_dT)= '18-May-2012'trunc將時間組件放在submit_Date上。然後引擎會隱式地將字符串轉換爲日期,從而比較類似的組件。這假定submit_DT是一個日期/時間,而顯示可能只會顯示一個日期;但存儲時間。如果是這種情況,上面的trunc應該可以工作。如果NLS格式是Oracle Default – xQbert

回答

1

您需要將字符串日期轉換成日期TO_DATE()函數。 此外,您還需要考慮到您的日期可能包含小時/分鐘/秒。爲了處理這個,你需要截斷submit_dt列。

在你的情況是這樣的:

Select Submit_Dt From Siebel.S_Order_Dtl 
where TRUNC(submit_dt) = TO_DATE('18-May-2012','dd-MON-yyyy') 
+0

@Rafaz謝謝你,系統會隱式地將你輸入的字符串日期轉換爲日期。這工作。 :) – RDPD

1

嘗試使用to_date日期爲日期格式轉換如下

Select Submit_Dt From Siebel.S_Order_Dtl 
where submit_dt = to_date('18-May-2012','DD-MON-YYYY') 
+0

或ANSI語法'DATE'2012-05-18'' –