select
distinct(
to_char(dt,'yyyy-mm'))
from (
select
ADD_MONTHS(
to_date('2005-01-01', 'yyyy-mm-dd')+
rownum-1) dt
from
dual
connect by rownum<=
to_date('2005-12-30', 'yyyy-mm-dd')-
to_date('2005-01-01', 'yyyy-mm-dd') + 1)
这样就取到了2005年1月到2005年12月的所有月份了。根据这个就能推敲出其他的比如取详细日期列表,时间