計算給定兩個日期之間的工作日個數

lwitpub發表於2011-02-25
如何不使用function,而計算給定兩個日期之間的工作日個數:
SQL>select s, e, e - s + 1 Total_Days, Trunc((e - s + 1) / 7) * 5 + Nvl(Length(replace(Substr('11111001111100', mod(e - s + 1, 7)), '0', '')), 0) Work_Days from (select To_Date('20120101', 'yyyymmdd') e, To_Date('20110101', 'yyyymmdd') + rownum - 4 s from Dual connect by  rownum <= 7) t;
S          E          TOTAL_DAYS  WORK_DAYS
---------- ---------- ---------- ----------
2010-12-29 2012-01-01        369        266
2010-12-30 2012-01-01        368        267
2010-12-31 2012-01-01        367        268
2011-01-01 2012-01-01        366        269
2011-01-02 2012-01-01        365        270
2011-01-03 2012-01-01        364        270
2011-01-04 2012-01-01        363        260
7 rows selected.
 
而對於節假日,可以單獨儲存到另一張表裡

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/628922/viewspace-687941/,如需轉載,請註明出處,否則將追究法律責任。

相關文章