Skip to content

Commit d7975bc

Browse files
committed
add DateAddBusinessDays
1 parent cb204c3 commit d7975bc

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

utility/DateAddBusinessDays.sql

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
--======================================================
2+
-- Usage: DateAddBusinessDays
3+
-- History:
4+
-- Date Author Description
5+
-- 2020-06-10 DN Intial
6+
--======================================================
7+
DROP FUNCTION IF EXISTS DateAddBusinessDays
8+
GO
9+
CREATE FUNCTION DateAddBusinessDays
10+
(
11+
@Days int,
12+
@Date datetime
13+
)
14+
RETURNS datetime
15+
AS
16+
BEGIN
17+
DECLARE @DayOfWeek int
18+
SET @DayOfWeek = CASE
19+
WHEN @Days < 0 THEN (@@DateFirst + DATEPART(weekday, @Date) - 20) % 7
20+
ELSE (@@DateFirst + DATEPART(weekday, @Date) - 2) % 7
21+
END;
22+
23+
IF @DayOfWeek = 6
24+
SET @Days = @Days - 1
25+
ELSE IF @DayOfWeek = -6
26+
SET @Days = @Days + 1;
27+
28+
RETURN @Date + @Days + (@Days + @DayOfWeek) / 5 * 2;
29+
END
30+
/*
31+
SELECT dbo.DateAddBusinessDays(-2,GETDATE())
32+
SELECT dbo.DateAddBusinessDays(5,GETDATE())
33+
*/

0 commit comments

Comments
 (0)