试图生成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
答案 0 :(得分:2)
将参数乘以12:
select last_day(add_months(date '2017-01-01', (level - 1) * 12 )) as mth
from dual
connect by level <= 3
答案 1 :(得分:1)
使用<= 36,它将生成到19年12月31日
select LAST_DAY(add_months(date '2017-01-01', level - 1)) as mth
from dual
connect by level <= 36
答案 2 :(得分:0)
正如@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