Для рабочих дней, с понедельника по пятницу, можно сделать это с единственным ВЫБОРОМ, как это:
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '2008/10/01'
SET @EndDate = '2008/10/31'
SELECT
(DATEDIFF(dd, @StartDate, @EndDate) + 1)
-(DATEDIFF(wk, @StartDate, @EndDate) * 2)
-(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
-(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)
, Если Вы хотите включать праздники, необходимо разработать его немного...
Ознакомьтесь с TargetProcess
Однако он не просто отслеживает время, поэтому он может не соответствовать тому, что вы хотите иметь.
Если вы используете TFS, вы можете отслеживать время, выделенное рабочим элементам в вашем командном проекте, используя Работа с TFS
Кажется, довольно просто настроить и использовать ... хотя у меня нет опыта использования его в течение длительного времени.