Oracle 10g:从格式为 YYYY-MM 的 dual 中选择 n 个日期

Oracle 10g: selecting n date from dual with format YYYY-MM

我正在尝试显示从 5 年前的 3 月开始的 12 个月。 我唯一能做对的方法是:

select to_char(add_months(sysdate, level-51),'YYYY-MM') 
from dual 
connect by level <= 12

哪个显示器:

2014-03
2014-04
2014-05
...

不过我需要约会。

但尝试使用:

select to_date(to_char(add_months(sysdate, level-51),'YYYY-MM'),'YYYY-MM') 
from dual 
connect by level <= 12

给出月份:

2014-03-01
2014-04-01
2014-05-01
...

问题 有人有解决方案吗?

编辑:

正在做

alter session set nls_date_format='YYYY-MM';

解决问题,但如何在存储过程中设置此格式?

您可以简单地截断结果值:

select trunc(add_months(sysdate, level-51), 'MM')
from dual
connect by level <= 12