Calculate business hours between two dates

前端 未结 14 1272
被撕碎了的回忆
被撕碎了的回忆 2020-11-27 05:06

How can I calculate business hours between two dates? For example we have two dates; 01/01/2010 15:00 and 04/01/2010 12:00 And we have working hours 09:00 to 17:00 in weekda

14条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-27 05:31

    DECLARE @StartDate DATETIME
    DECLARE @EndDate DATETIME
    DECLARE @WORKINGHOURS INT
    DECLARE @Days INT
    SET @StartDate = '2010/01/01'
    SET @EndDate = '2010/04/01'
    
    --number of working days
    SELECT @Days = 
       (DATEDIFF(dd, @StartDate, @EndDate) + 1)
      -(DATEDIFF(wk, @StartDate, @EndDate) * 2)
      -(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
      -(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)
    
    --8 hours a day    
    SET @WORKINGHOURS = @Days * 8 
    
    SELECT @WORKINGHOURS
    

提交回复
热议问题