从下个月开始的最后一天

时间:2017-05-25 07:37:32

标签: sql oracle

我需要从下个月开始在这个选择中获得最后一天。

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

月份和年份一切正常,但我的日常功能有问题。

1 个答案:

答案 0 :(得分:2)

使用(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