1

需要列出过去 12 个月的所有日期的查询

假设我当前的日期是 2013 年 10 月 21 日。需要使用 sysdate 来获取数据

结果应该看起来像

10/21/2013
...
10/01/2013
09/30/2013
...
09/01/2013
...
01/31/2013
...
01/01/2013
...
11/30/2012
...
11/01/2012

请帮我解决这个问题。在此先感谢。

平均

4

3 回答 3

3

允许闰年和所有,通过使用 add_months 计算出 12 个月前的日期,从而生成多少行......

select trunc(sysdate) - rownum + 1 the_date
from   dual
connect by level <= (trunc(sysdate) - add_months(trunc(sysdate),-12))
于 2013-10-21T20:35:27.977 回答
1

你可以这样做:

select to_date('21-oct-2012','dd-mon-yyyy') + rownum -1
from all_objects
where rownum <= 
    to_date('21-oct-2013','dd-mon-yyyy') - to_date('21-oct-2012','dd-mon-yyyy')+1

当然,您可以使用开始和结束日期的参数以使其更可用。

- 或 - 使用 sysdate,如下所示:

select sysdate + interval '-1' year + rownum -1
from all_objects
where rownum <= 
    sysdate - (sysdate + interval '-1' year)
于 2013-10-21T20:25:03.957 回答
0
Try this

SELECT SYSDATE,
       SYSDATE-1,
       <continue>   
       SYSDATE-30,         
       <continue>
        .........
       <continue>    
       SYSDATE-364,
       SYSDATE-365

FROM DUAL;
于 2013-10-21T19:39:01.450 回答