2013-03-08 87 views
0

我想獲取超過30天(從Mod_date)的Oracle sql中的記錄,並且我正在使用下面的查詢,它將返回所有數據,而我只需要30天的舊數據。請你誰能幫助我改正這個查詢樣品: - Mod_date 03-NOV-12 12.00.00.000000000 AM查詢: -試圖獲取超過30天在oracle中的記錄sql

select Mod_date 
from fil_cnfact 
where Mod_date <= sysdate -30 
order by Mod_date asc ; 
+0

如果您希望所有Mod_date大於30天,您的查詢是正確的。但需要考慮的幾件事情1. sysdate是日期+時間(如果你確實是指日期,則截取它); 2.你確定你是真的意味着30天,而不是一個月前(記住,幾個月不一定是30天)? – 2013-03-08 20:15:25

回答

0

您的查詢要求小於或等於從30天后的所有記錄。僅將您的運營商更改爲=才能請求30天前的記錄。

select Mod_date 
from fil_cnfact 
where trunc(Mod_date) = trunc(sysdate)-30 
order by Mod_date asc ; 
+0

謝謝馬特。我跑這個查詢,但沒有結果。 (空白) – Raj 2013-03-08 20:42:39

+0

嗨馬特,如果我使用'>'那麼查詢按預期工作。我的意思是如下所示,從fil_cnfact中選擇Mod_date 其中trunc(Mod_date)> = trunc(sysdate)-30 order by Mod_date asc;感謝您的查詢.... – Raj 2013-03-12 14:53:02