Как упоминает @APC, функция last_day зависит от настроек даты NLS.Таким образом, вы можете предпочесть функцию truncate
, усеченную до единицы, указанной yyyy
, как показано ниже:
select add_months(trunc(date'2017-01-01','yyyy'), level * 12 ) - 1
as "Last Days"
from dual
connect by level <= 3;
Last Days
----------
2017-12-31
2018-12-31
2019-12-31
Демо