Skip to content

Instantly share code, notes, and snippets.

@PBI-DataVizzle
Created February 3, 2025 14:22
Show Gist options
  • Save PBI-DataVizzle/116e8932c1896808df32d1d69befa086 to your computer and use it in GitHub Desktop.
Save PBI-DataVizzle/116e8932c1896808df32d1d69befa086 to your computer and use it in GitHub Desktop.
debug_workdays_functions
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