SQL> select to_date(to_char(sysdate,'yyyy-mm')||'_'||level,'yyyy-mm-dd') as everyday from dual connect by level<=to_char(last_day(sysdate),'dd') order by 1;
EVERYDAY
-----------
2013-05-01
2013-05-02
2013-05-03
2013-05-04
2013-05-05
2013-05-06
2013-05-07
2013-05-08
2013-05-09
2013-05-10
2013-05-11
2013-05-12
2013-05-13
2013-05-14
2013-05-15
2013-05-16
2013-05-17
2013-05-18
2013-05-19
2013-05-20
EVERYDAY
-----------
2013-05-21
2013-05-22
2013-05-23
2013-05-24
2013-05-25
2013-05-26
2013-05-27
2013-05-28
2013-05-29
2013-05-30
2013-05-31
31 rows selected
小结:
1,last_day提取当月的最后一天
2,to_char提取当月最后一天为数值
3,connect by level=上述的2产生的值,这样即可产生当月对应天数的记录
4,select先用to_char分割开,各为yyyy-mm和dd,最后用to_date把二者整合
5,order by 1即对上述4产生的列进行排序输出结果
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-762138/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9240380/viewspace-762138/