oracle function last_day和connect by实现打印一个月每天

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值