2013-08-22 47 views
1

我想正是明年寫一個存儲過程來打印月份的最後一天添加1年的SYSDATE

我得到這個年最後日期,但我想30/8/2014

我已經試過以下內容:

IF LAST_DAY(add_months(SYSDATE, 12)-1) 

但它沒有給我任何輸出。

+0

只是順便說一句,在使用'SELECT ... INTO'這樣只是要求一個'ORA-01422:精確獲取比rows'的請求數量更多的回報。把它放在一個遊標中並取一次。 – ninesided

+0

@ninesided,如果'repid'是唯一的,則不行。 –

+0

@JeffreyKemp同意了,現在可能不是問題,但是我們並不確定,但沒有人知道它會如何改變賽道。我只是想強調,這種代碼往往會導致錯誤,如果可能,最好避免,恕我直言。 – ninesided

回答

4

爲什麼使用-1?以下將起作用:

select last_day(add_months(sysdate, 12)) from dual 

如果您在SQL * Plus中運行此操作並且未啓用打印,則可能沒有輸出。嘗試:

set serveroutput on 
0

如果你的要求是2014年8月30日使用以下

select last_day(add_months(sysdate, 12))-1 from dual 

如果要求你可以使用Ben的回答這個月的最後一天

0

試試這個

SELECT add_months(LAST_DAY(SYSDATE),12) as NextYearDate from Dual 

願這能幫助你。

SQL Fiddle Demo