Я предполагаю, что вы также хотите, чтобы суббота и воскресенье были перенесены на следующий понедельник. Если это не так, возьмите 1 из (1,2,3,4,5) и удалите последнее условие когда.
case
--Sunday thru Thursday are shifted forward 1 day
when datepart(weekday, [Date]) in (1,2,3,4,5) then dateadd(day, 1, [Date])
--Friday is shifted forward to Monday
when datepart(weekday, [Date]) = 6 then dateadd(day, 3, [Date])
--Saturday is shifted forward to Monday
when datepart(weekday, [Date]) = 7 then dateadd(day, 2, [Date])
end
Вы также можете сделать это в одну строку:
select dateadd(day, 1 + (datepart(weekday, [Date])/6) * (8-datepart(weekday, [Date])), [Date])