• Here Is Stored procedure

    Assuming only sunday as holiday.

    Create FUNCTION [dbo].[GetWorkingDays]

    ( @StartDate datetime,

    @EndDate datetime )

    RETURNS INT

    AS

    BEGIN

    DECLARE @WorkDays int, @FirstPart int

    DECLARE @FirstNum int, @TotalDays int

    DECLARE @LastNum int, @LastPart int

    IF (DATEDIFF(day, @StartDate, @EndDate) < 2)

    BEGIN

    RETURN ( 0 )

    END

    SELECT

    @TotalDays = DATEDIFF(day, @StartDate, @EndDate) - 1,

    @FirstPart = CASE DATENAME(weekday, @StartDate)

    WHEN 'Sunday' THEN 6

    WHEN 'Monday' THEN 5

    WHEN 'Tuesday' THEN 4

    WHEN 'Wednesday' THEN 3

    WHEN 'Thursday' THEN 2

    WHEN 'Friday' THEN 1

    WHEN 'Saturday' THEN 0

    END,

    @FirstNum = CASE DATENAME(weekday, @StartDate)

    WHEN 'Sunday' THEN 6

    WHEN 'Monday' THEN 5

    WHEN 'Tuesday' THEN 4

    WHEN 'Wednesday' THEN 3

    WHEN 'Thursday' THEN 2

    WHEN 'Friday' THEN 1

    WHEN 'Saturday' THEN 0

    END

    IF (@TotalDays < @FirstPart)

    BEGIN

    SELECT @WorkDays = @TotalDays

    END

    ELSE

    BEGIN

    SELECT @WorkDays = (@TotalDays - @FirstPart) / 7

    SELECT @LastPart = (@TotalDays - @FirstPart) % 7

    SELECT @LastNum = CASE

    WHEN (@LastPart 0) THEN @LastPart - 1

    ELSE 0

    END

    SELECT @WorkDays = @WorkDays * 6 + @FirstNum + @LastNum

    END

    RETURN ( @WorkDays )

    END