捆绑生成3年的数据如下
31-DEC-17
31-DEC-18
31-DEC-19
以下查询生成3个月。我如何将此转移到3年
select LAST_DAY(add_months(date '2017-01-01', level - 1)) as mth
from dual
connect by level <= 3
将参数乘以12:
select last_day(add_months(date '2017-01-01', (level - 1) * 12 )) as mth
from dual
connect by level <= 3
使用<= 36,这将产生到31-DEC-19
select LAST_DAY(add_months(date '2017-01-01', level - 1)) as mth
from dual
connect by level <= 36
正如@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