Entries for day: 10 March 2010

Date Difference Excluding Weekend.

Hello,

Recently I need to find the date difference between two dates excluding weekends. So I have made sql server scalar function to get date difference excluding weekends. You need to pass only two arguments as start date and end date. Refer below example. I hope it may be helpful.

Declare @startDate date, @endDate date;
Set @startDate = CONVERT(date,'03/11/2010');
Set @endDate = CONVERT(date,'03/25/2010');

select dbo.fun_getDateDiffExcludeWeekEnd(@startDate,@endDate)

Basically datediff function start count from next to @startDate so if you want to get count with @startdate you need add +1 in count.

select dbo.fun_getDateDiffExcludeWeekEnd(@startDate,@endDate) + 1

Otherwise you can write it like below syntax.

select dbo.fun_getDateDiffExcludeWeekEnd(dateadd(d,-1,@startDate),@endDate)

Function for get date different with exclude weekends.

CREATE FUNCTION [dbo].[fun_getDateDiffExcludeWeekEnd] 
(
    @start datetime,
    @end datetime
)
RETURNS numeric
AS
BEGIN
    DECLARE @WeedDay numeric = 0;
    DECLARE @TotalDayCount numeric = 0;
    
    SELECT @WeedDay = datepart(weekday,@end);
    
    IF @WeedDay = 1
        BEGIN
            SELECT @end = DATEADD(d,1,@end);
        END
    IF @WeedDay = 7
        BEGIN
            SELECT @end = DATEADD(d,2,@end);
        END
    SELECT @TotalDayCount = (DateDiff(d, @start, @end) - ( DateDiff(ww, @start, @end) * 2));
    RETURN @TotalDayCount
END

Design by Mark Aplet | Powered by Mango Blog