2011-02-10 287 views
6

我需要這樣的函數Oracle在Oracle函數中獲取上個月的最後一天

當我給參數一個簡單的日期。然後功能應該讓我在前一個月的最後一天。

例子:

FunctionName(10.02.2011) Result should be 31.01.2011 

FunctionName(21.03.2011) Result should be 28.02.2011 

FunctionName(31.07.2011) Result should be 30.06.2011 (Even date is last day of month) 

我怎樣才能做到這一點?順便說一下,我從來沒有使用Oracle

回答

26
SELECT LAST_DAY(ADD_MONTHS(yourdate,-1)) 
+2

這些功能幾十年來一直是標準Oracle的一部分。 – APC

+1

@APC哦,很高興知道:)。我實際上是Oracle的新手。 – Lamak

2

select LAST_DAY(ADD_MONTHS(sysdate, -1)) from dual;

結果日期格式,只要你喜歡(我會留給一個適合你;)

7

作爲替代這裏其他的答案,也可以通過獲取發現前一個月的最後一天本月

SELECT trunc(your_date, 'MM')-1 as new_date from your_table 

第一天的前一天,我可能會仍然建議使用last_day(add_months(xxx,-1))但只是顯示的替代品。

相關問題