我需要在这个选择中获取下个月的最后一天。
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