Web Listing 1: Creation Script for Function fn_workingdays CREATE FUNCTION dbo.fn_workingdays ( @from_dt AS DATETIME, @to_dt AS DATETIME, @datefirst AS INT ) RETURNS INT AS BEGIN RETURN ( SELECT days/7*5 + days%7 - CASE WHEN 6 BETWEEN from_weekday AND to_weekday THEN 1 ELSE 0 END - CASE WHEN 7 BETWEEN from_weekday AND to_weekday THEN 1 ELSE 0 END FROM ( SELECT days, from_weekday, from_weekday + days%7 - 1 AS to_weekday FROM ( SELECT DATEDIFF(day, @from_dt, @to_dt) + 1 AS days, DATEPART(weekday, @from_dt + @@DATEFIRST - @datefirst) AS from_weekday ) AS D1 ) AS D2 ); END GO