ORACLE判斷兩個日期間隔幾個工作日


CreateTime--2017年9月7日17:14:56

Author:Marydon

ORACLE判斷兩個日期間隔幾個工作日

方法:使用存儲過程

/**
 * 判斷兩個日期間隔幾個工作日
 */
CREATE OR REPLACE FUNCTION "FUN_BETWEENDAYS"(start_dt date, end_dt date)
  RETURN INT IS
  t_days INT;
BEGIN
  SELECT (TRUNC(end_dt - start_dt) - ((CASE
           WHEN (8 - to_number(to_char(start_dt, 'D'))) >
                TRUNC(end_dt - start_dt) + 1 THEN
            0
           ELSE
            trunc((TRUNC(end_dt - start_dt) -
                  (8 - to_number(to_char(start_dt, 'D')))) / 7) + 1
         END) + (CASE
           WHEN MOD(8 - to_char(start_dt, 'D'), 7) >
                TRUNC(end_dt - start_dt) - 1 THEN
            0
           ELSE
            TRUNC((TRUNC(end_dt - start_dt) -
                  (MOD(8 - to_char(start_dt, 'D'), 7) + 1)) / 7) + 1
         END)))
    INTO t_days
    FROM dual;
  RETURN t_days;
END FUN_BETWEENDAYS;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM