Дефис используется для изменения знака значения выражения, потому что в том случае, если у вас есть:
CASE WHEN @StartDate <= @EndDate
THEN
dbo.FullWeekDays(@StartDate, @EndDate) - @nonworkingweekdays
ELSE
-(dbo.FullWeekDays(@StartDate, @EndDate) - @nonworkingweekdays)
END
вы возвращаете разницу между датами за вычетом переменной nonworkingdays
.
это логически лучший вариант, потому что вы не можете иметь разницу в -1 дней, вам всегда нужно положительное целое число в разнице.
обязательно сделайте способ различать типы возврата (когда startdate
больше enddate
и наоборот)