Calculate Working Days in SQL
This is a function that will allow you to calculate working days between two dates. A working day is a day that isn't a weekend. It does not subtract any holidays.
CREATE FUNCTION dbo.GetWorkingDays_GD
( @StartDate datetime,
@EndDate datetime )
RETURNS INT
AS
BEGIN
DECLARE @i INT
DECLARE @WorkDays INT
DECLARE @DaysNo INT
DECLARE @DatePivot DATETIME
SET @i = 0
SET @WorkDays = 0
SET @DaysNo = DATEDIFF(DD, @StartDate, @EndDate) +1
WHILE @i <= @DaysNo - 1
BEGIN
SET @DatePivot = DATEADD(DD, +@i, @StartDate)
IF DATENAME(DW, @DatePivot) NOT IN ('Saturday', 'Sunday') SET @WorkDays = @WorkDays + 1
SET @i = @i + 1
END
RETURN ( @WorkDays )
END

0 comments:
Post a Comment