![](/img/trans.png)
[英]Getting SQL Error: ORA-01847: day of month must be between 1 and last day of month when running my statment
[英]Getting Last Day of Previous Month in Oracle Function
我需要这样的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
。
SELECT LAST_DAY(ADD_MONTHS(yourdate,-1))
作为此处其他答案的替代,您还可以通过获取本月第一天的前一天来找到上个月的最后一天
SELECT trunc(your_date, 'MM')-1 as new_date from your_table
我可能仍然会推荐使用last_day(add_months(xxx,-1))
但只是展示一个替代方案。
select LAST_DAY(ADD_MONTHS(sysdate, -1)) from dual
;
根据您的喜好格式化结果日期(我会为您留下那个;)
有了这个,您还可以获得上个月的最后一个工作日,或更改 -1 的任何其他月份。
SELECT (trunc(LAST_DAY(ADD_MONTHS(sysdate,-1)), 'iw') + 4) from dual
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.