1. List dates
If you know the start date and end date, how can you use an SQL statement to get all the dates in this period.
Eg:
Known:
2007/04/25 2007/05/02
It is concluded that:
2007/04/25
2007/04/26
2007/04/27
2007/04/28
2007/04/29
2007/04/30
2007/05/01
2007/05/02
SQL:
SELECT TO_CHAR(to_date('2007/04/25', 'yyyy/mm/dd') + (level - 1), 'yyyy/mm/dd')FROM dual CONNECT BY TRUNC(to_date('2007/04/25', 'yyyy/mm/dd')) + level - 1 <= TRUNC(to_date('2007/05/02', 'yyyy/mm/dd'));
2. List months
Known: 2011-03 2012-07
It is concluded that:
2011-03
2011-04
2011-05
2011-06
2011-07
2011-08
2011-09
2011-10
2011-11
2011-12
2012-01
2012-02
2012-03
2012-04
2012-05
2012-06
SQL:
SELECT TO_CHAR( add_months(to_date('2011-03', 'yyyy-mm'), ROWNUM - 1), 'YYYY-MM' ) AS yearmonthFROM DUAL CONNECT BY ROWNUM <= (SELECT months_between(to_date('2012-07', 'yyyy-mm'), to_date('2011-03', 'yyyy-mm')) FROM dual )
References
[1]. Help: list all dates within the date limit period. http://www.itpub.net/thread-763220-1-1.html
[2]. list all months in a specified time range. http://www.dedecms.com/knowledge/data-base/oracle/2012/1228/18330.html