从下个月开始的最后一天



我需要在这个选择中获取下个月的最后一天。

select (last_day(month from :date+1)||'.'||
       (extract(month from :date)+1)||'.'||
       extract(year from :date))
  from dual;

月份和年份一切都很好,但我的最后一天功能有问题。

使用 (extract(month from :date)+1) 不适用于 12 月的日期,因为您最终会得到第 13 个月。同样,extract(year from :date)会让你得到当年 - 如果你正在寻找 12 月下个月的最后一天,结果应该是下一年的 1 月,这可能不正确。

您不需要单独提取所有字段,您可以在单个语句中完成所有操作:

SELECT TO_CHAR(
         LAST_DAY( ADD_MONTHS( :date, 1 ) ),
         'DD.MM.YYYY'
       )
FROM   DUAL

最新更新