ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle function last_day和connect by实现打印一个月每天

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

原创 Linux操作系统 作者:wisdomone1 时间:2013-05-27 21:05:51 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-762138/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12690159