ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 计算两个日期之间所有的工作日

计算两个日期之间所有的工作日

原创 Linux操作系统 作者:壹頁書 时间:2013-11-04 22:20:04 0 删除 编辑

  1. s是开始日期,e是结束日期

  2. create or replace function workday(s in date,e in date) RETURN INTEGER
  3. as
  4. result integer;
  5. begin
  6. select count(*) into result from (
  7.     select to_char(s+level-1,'d') w,s+level-1 from dual connect by level<=(e-s+1)
  8. )
  9. where w not in ('1','7');
  10. return result;
  11. end workday;
  12. /

SQL> select workday(to_date('20131101','yyyymmdd'),to_date('20131115','yyyymmdd')) workday from dual;


   WORKDAY
----------
        11


SQL> select workday(to_date('20131101','yyyymmdd'),to_date('20131125','yyyymmdd')) workday from dual;


   WORKDAY
----------
        17


SQL> select workday(to_date('20131101','yyyymmdd'),to_date('20131130','yyyymmdd')) workday from dual;


   WORKDAY
----------
        21

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-775663/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 行转列
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    621
  • 访问量
    5939182