2013-10-04 75 views
1

我的問題與我的查詢。我不知道如何計算日期的數據。我想顯示從前幾個月到前一個月的日期。哪裏是從一年的開始到一個月的最後一天的結束?

例如,今年。從一月到九月。不包括本月。我有問題,這個條件

and mhn.trh_masuk between add_months(Last_day(sysdate) + 1, -10) and add_months(Last_day(sysdate) + 0, -2) 

這是我的Oracle SQL:

select DISTINCT 
count(mhn.id_mohon) ide, 
add_months(Last_day(sysdate)+1,-10) datejan, 
add_months(Last_day(sysdate)+0,-2) onemonthbeforenow, 
ku.nama u4 
from 
mohon mhn, kod_urusan ku, kod_caw kc 
where 
mhn.kod_urusan = ku.kod(+) 
and mhn.kod_caw = kc.kod(+) 
AND KU.AKTIF = 'Y' 
AND KU.KOD_JABATAN= 2 
and mhn.trh_masuk between add_months(Last_day(sysdate)+1,-10) and add_months(Last_day(sysdate)+0,-2) 
and (mhn.kod_caw = :p_kod_caw or :p_kod_caw is null) 
and (mhn.kod_urusan in ('PBMT','PBMMK'))  
group by ku.nama 

任何人有其他公式來此解決方案的任何想法?

+0

所以,你想從year'的'開始到以前month'的'最後一天的數據? – Noel

+0

是@ Ramblin'Man,你知道該怎麼做嗎? –

回答

3

嘗試這樣,

AND mhn.trh_masuk BETWEEN trunc(SYSDATE,'YEAR') AND last_day(add_months(TRUNC(SYSDATE), -1)) + .99999 
+1

'TRUNC(last_day(add_months(SYSDATE,-1)))'將給予2013年9月30日00:00:00。因此不會選擇最後一天的記錄。 – Noel

+0

@ Ramblin'Man,謝謝你指出這個問題,我修改了答案。 – Dba

+0

@ dba,tq very much.your answer so so helpful。:) –

相關問題