http://reddymsbitools.blogspot.com

Saturday, 26 February 2011

get business days

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER function [dbo].[GetBusinessDays]
(
@StartDate datetime,
@EndDate datetime
)
returns int

/* Release: ?
Created On: ?
Created By: ?
Purpose: Returns the the number of business days in hours format between two dates.
Does not account for holidays.

NOTES:
*/
as
begin

declare @DaysBetween int
declare @BusinessDays int
declare @Cnt int
declare @EvalDate datetime

select @DaysBetween = 0
select @BusinessDays = 0
select @Cnt=0

select @DaysBetween = datediff(Day,@StartDate,@endDate) + 1

while @Cnt < @DaysBetween
begin

select @EvalDate = @StartDate + @Cnt


if ((datepart(dw,@EvalDate) = 1) or (datepart(dw,@EvalDate) = 7))
BEGIN
select @BusinessDays = @BusinessDays + 1
END


select @Cnt = @Cnt + 1
end

return DateDiff(hh,@StartDate,@EndDate)-@BusinessDays*24


end

No comments:

Post a Comment