Created
February 3, 2025 14:22
-
-
Save PBI-DataVizzle/116e8932c1896808df32d1d69befa086 to your computer and use it in GitHub Desktop.
debug_workdays_functions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DECLARE @StartDate DATE = '2025-01-10'; | |
DECLARE @CalendarDays INT = 25; | |
DECLARE @EndDate DATE = DATEADD(DAY, @CalendarDays , @StartDate); | |
WITH Dates AS ( | |
SELECT @StartDate AS WorkDate | |
UNION ALL | |
SELECT DATEADD(DAY, 1, WorkDate) | |
FROM Dates | |
WHERE WorkDate < @EndDate | |
) | |
SELECT COUNT(*) AS Workdays | |
FROM Dates | |
WHERE DATEPART(WEEKDAY, WorkDate) NOT IN (7, 1); -- 1 = Sunday, 7 = Saturday (default SQL Server) | |
; | |
DECLARE @StartDate DATE = '2025-01-10'; | |
DECLARE @CalendarDays INT = 25; | |
DECLARE @EndDate DATE = DATEADD(DAY, @CalendarDays - 1, @StartDate); | |
WITH Dates AS ( | |
SELECT DATEADD(DAY, -1, @StartDate) AS WorkDate | |
UNION ALL | |
SELECT DATEADD(DAY, 1, WorkDate) | |
FROM Dates | |
WHERE WorkDate < @EndDate | |
) | |
SELECT WorkDate, DATENAME(WEEKDAY, WorkDate) AS DayOfWeek, | |
CASE | |
WHEN DATEPART(WEEKDAY, WorkDate) IN (7, 1) THEN 'Weekend' | |
ELSE 'Workday' | |
END AS DayType | |
FROM Dates | |
ORDER BY WorkDate; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment