• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    SQL語句計算兩個日期之間有多少個工作日的方法

    來源:懂視網 責編:小采 時間:2020-11-09 07:03:23
    文檔

    SQL語句計算兩個日期之間有多少個工作日的方法

    SQL語句計算兩個日期之間有多少個工作日的方法:/* 因為工作中一個奇怪的需求,要用SQL語言計算兩個日期間有多少個工作日。 設定是一個星期有5個工作日,從星期一到星期五 說明: 第一個星期的工作日數:DATEPART(dw, @begdt)-DATEPART(dw, @begdt),最少0天 末一個星期的工作日數:DATEPART(d
    推薦度:
    導讀SQL語句計算兩個日期之間有多少個工作日的方法:/* 因為工作中一個奇怪的需求,要用SQL語言計算兩個日期間有多少個工作日。 設定是一個星期有5個工作日,從星期一到星期五 說明: 第一個星期的工作日數:DATEPART(dw, @begdt)-DATEPART(dw, @begdt),最少0天 末一個星期的工作日數:DATEPART(d

    /*
    因為工作中一個奇怪的需求,要用SQL語言計算兩個日期間有多少個工作日。
    設定是一個星期有5個工作日,從星期一到星期五
    說明:
      第一個星期的工作日數:DATEPART(dw, @begdt)-DATEPART(dw, @begdt),最少0天
      末一個星期的工作日數:DATEPART(dw, @enddt),最多5天
    計算方法:
      如果兩個日期處在同一個星期內,直接計算“第一個星期的工作日數”
      否則按下面的公式計算
        (兩個日期間的總天數 - 第一個星期的天數 - 末一個星期的天數) / 7 * 5
      + 第一個星期的工作日數
      + 末一個星期的工作日數
    */

     --計算并返回兩個日期間的工作小時數(工作日*8)按周一到周五計算
    --必須先SET DATEFIRST 1
    CREATE FUNCTION dbo.CalcWorkHours(@bdate DATETIME, @edate DATETIME)
     RETURNS INTEGER
    AS BEGIN
     DECLARE @hours INTEGER
     IF @@DATEFIRST <> 1 OR @bdate > @edate
     RETURN -1
     SELECT @hours =
     --如果終止日期與起始日期在同一個星期內,只需要計算有幾天即可
     CASE WHEN DATEPART(wk, @edate-1)-DATEPART(wk,@bdate) = 0 THEN
     CASE WHEN DATEPART(dw, @bdate) > 5 THEN 0
     WHEN DATEPART(dw, @edate-1) > 5 THEN 6 - DATEPART(dw, @bdate)
     ELSE DATEPART(dw, @edate-1) - DATEPART(dw, @bdate) + 1 END
     --如果終止日期與起始日期在不同的星期內
     --首先計算出除前后兩個星期外完整的星期數 * 5
     ELSE (DATEDIFF(dd,@bdate,@edate)
     - (8-DATEPART(dw, @bdate))
     - DATEPART(dw, @edate-1)) / 7 * 5
     --再加上第一個星期里的工作日數
     + CASE WHEN DATEPART(dw, @bdate) < 6 THEN 6 - DATEPART(dw, @bdate)
     ELSE 0 END
     --加上末一個星期里的工作日數
     + CASE WHEN DATEPART(dw, @edate-1)>5 THEN 5 ELSE DATEPART(dw, @edate-1) END
     END * 8
     RETURN @hours
    END
    

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    SQL語句計算兩個日期之間有多少個工作日的方法

    SQL語句計算兩個日期之間有多少個工作日的方法:/* 因為工作中一個奇怪的需求,要用SQL語言計算兩個日期間有多少個工作日。 設定是一個星期有5個工作日,從星期一到星期五 說明: 第一個星期的工作日數:DATEPART(dw, @begdt)-DATEPART(dw, @begdt),最少0天 末一個星期的工作日數:DATEPART(d
    推薦度:
    標簽: sql 工作日 sql語句
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品麻豆入口| 在线精品自拍无码| 99精品国产成人一区二区| 中文字幕精品亚洲无线码一区应用| 久久这里只精品国产99热| 久久夜色精品国产噜噜麻豆| 精品一区二区三区免费观看| 青青草精品视频| 国产精品ⅴ无码大片在线看| 自拍偷自拍亚洲精品被多人伦好爽| 国产精品偷窥熟女精品视频| 国产精品一二三区| 国产精品亚洲A∨天堂不卡| 亚洲精品国产成人影院| 久久99精品久久久久久9蜜桃| 欧美精品一区二区三区在线| 国产国拍亚洲精品mv在线观看| 亚洲精品V欧洲精品V日韩精品| 精品人体无码一区二区三区| 国产2021久久精品| 欧美精品一区二区三区视频 | 欧洲精品色在线观看| 亚洲国产精品无码久久九九| 久久er国产精品免费观看8| 国产精品天干天干在线综合| 国产精品99爱免费视频| 91精品国产品国语在线不卡| 国产精品成人观看视频免费 | 日韩人妻精品无码一区二区三区 | 在线精品亚洲一区二区小说| 日韩三级精品| 日韩精品无码永久免费网站| 老司机午夜网站国内精品久久久久久久久| 国产精品一区在线观看你懂的| Xx性欧美肥妇精品久久久久久| 91探花国产综合在线精品| 98精品国产自产在线XXXX| 色综合久久精品中文字幕首页| 国产精品1024香蕉在线观看 | 亚洲精品亚洲人成人网| 无码精品黑人一区二区三区 |