2012-03-26 88 views
0

我得到它顯示在我的腳本的最近7天的數據Oracle數據庫語句甲骨文的聲明無法完成

的說法是:

代碼:

select * from TABLE_NAME 
WHERE DATETIME BETWEEN to_char((sysdate-7,MM), 'DDMMYYYY%') AND 
     to_char((sysdate,MM), 'DDMMYYYY%') 
ORDER BY DATETIME ASC; 

但是,這個產出給我的前幾個月的數據在該特定周的結果

Quote: DATETIME格式是DDMMYYYY HH:MI 如何獲得只有這幾個月的數據,而不是前幾個月的數據

+0

一)爲什麼不是'型的DATETIME' DTAE? b)爲什麼這種格式?它的意思是什麼?如果你使用字符串作爲日期(不要,但如果你這樣做),最好使用'yyyymmddhh24mi' – 2012-03-26 11:13:42

回答

0

化妝DATETIME一個日期,而不是:

select * from TABLE_NAME 
WHERE to_date(DATETIME, 'DDMMYYYY HH24:MI') BETWEEN case when to_char(sysdate, 'dd') > 7 then sysdate-7 else trunc(sysdate,'mm') end AND 
     sysdate 
ORDER BY DATETIME ASC; 
+0

上述語句執行時給我以下錯誤 「ORA-01849:小時必須介於1和12之間」 – user1292831 2012-03-26 11:17:38

+0

@ user1292831-我修復了我的答案 – 2012-03-26 11:29:25

+0

這給了我整個月的數據從第一天開始,而不是前一週的數據 sysdate格式是mm/dd/yyyy HH:MI:SS – user1292831 2012-03-26 11:33:42