我想用SQL查询出两个时间点之间所跨的月份,比如查询2007-03-01和2008-01-02之间的月份,查询结果就象下面这样:
200703
200704
200705
200706
200707
200708
200709
200710
200711
200712
200801
请问SQL应该怎么写?
chenqingyu同学回答道:
select
to_char(add_months(to_date(
'
20070301
'
,
'
yyyymmdd
'
),rownum
-
1
),
'
yyyymm
'
)
as
month
from dual
connect by add_months(to_date( ' 20070301 ' , ' yyyymmdd ' ),rownum - 1 ) <=
trunc(to_date( ' 20080102 ' , ' yyyymmdd ' ), ' mm ' )
order by month asc
from dual
connect by add_months(to_date( ' 20070301 ' , ' yyyymmdd ' ),rownum - 1 ) <=
trunc(to_date( ' 20080102 ' , ' yyyymmdd ' ), ' mm ' )
order by month asc