9

我需要这样的功能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

4 回答 4

34
SELECT LAST_DAY(ADD_MONTHS(yourdate,-1))
于 2011-02-10T12:47:49.730 回答
8

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

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

我可能仍然会推荐使用last_day(add_months(xxx,-1)),但只是显示一个替代方案。

于 2011-02-10T14:00:42.190 回答
4

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

随心所欲地格式化结果日期(我会把那个留给你;)

于 2011-02-10T12:47:49.150 回答
0

有了这个,您还可以获得上个月的最后一个工作日,或任何其他更改 -1 的月份。

SELECT (trunc(LAST_DAY(ADD_MONTHS(sysdate,-1)), 'iw') + 4) from dual
于 2018-09-14T17:14:53.580 回答