在Oracle函数中获取上个月的最后一天

时间:2011-02-10 12:43:32

标签: database oracle function date-arithmetic

我需要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

4 个答案:

答案 0 :(得分:28)

SELECT LAST_DAY(ADD_MONTHS(yourdate,-1))

答案 1 :(得分:8)

作为此处其他答案的替代方案,您还可以在本月第一天前一天找到上个月的最后一天

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

我可能仍然建议使用last_day(add_months(xxx,-1)),但只是展示替代方案。

答案 2 :(得分:3)

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

根据您的喜好格式化日期(我将为您留下一个;)

答案 3 :(得分:0)

与此同时,您还可以获得上个月的最后一个营业日,或其他任何更改-1的月份。

SELECT (trunc(LAST_DAY(ADD_MONTHS(sysdate,-1)), 'iw') + 4) from dual