国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 九九热免费视频 | 精品国产91 | 国产成人a一区二区 | 九九久久精品国产 | 久久精品国产亚洲a不卡 | 国产一区二区三区在线视频 | 欧美在线观看一区二区三 | 日韩一区二区三区在线视频 | 日本aⅴ精品一区二区三区久久 | 一级毛片特黄久久免费看 | 国产一二区视频 | 精品精品国产高清a毛片牛牛 | 久久久久久久国产精品毛片 | 欧美高清一区二区三 | 国产区一区二 | 久久久久久久久久久9精品视频 | 国产成人久久精品亚洲小说 | 久久一区二区三区免费播放 | 麻豆91视频 | 国产麻豆流白浆在线观看 | 国产成人精视频在线观看免费 | 久久久久久亚洲精品中文字幕 | 久久无码精品一区二区三区 | 欧美日韩第一页 | 免费一级a毛片在线播放直播 | 国产在线观看精品 | 欧美亚洲另类综合 | 欧美不卡一区 | 伊人色综合一区二区三区 | 欧美亚洲国产一区 | 国产精品手机视频一区二区 | 欧美日韩在线视频 | 香蕉国产精品 | 日本久久伊人 | 黄色在线观看视频网站 | 国产成人精品一区二区免费 | 亚洲精品一二三四区 | 亚洲欧洲在线观看 | 亚洲美女一区二区三区 | 欧美喷水| 国产一区二区在线视频 |