需要一个列出过去12个月所有日期的查询
说我现在的日期是10-21-2013。需要使用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
请帮我这个.. 提前谢谢。
AVG
答案 0 :(得分:2)
允许闰年和所有,通过使用add_months来计算12个月前的日期,从而生成多少行......
select trunc(sysdate) - rownum + 1 the_date
from dual
connect by level <= (trunc(sysdate) - add_months(trunc(sysdate),-12))
答案 1 :(得分: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)
答案 2 :(得分:0)
Try this
SELECT SYSDATE,
SYSDATE-1,
<continue>
SYSDATE-30,
<continue>
.........
<continue>
SYSDATE-364,
SYSDATE-365
FROM DUAL;