Мне нужна дата следующего дня (понедельник, вторник, ср.), следующего за сегодняшней датой.
Пользователь имеет право выбрать, какой день после них захочет, и который хранится как int в таблице. "Позвоните мне в следующий вторник (3)"
Sunday = 1
Monday = 2
Tuesday = 3
...
Итак, моя таблица выглядит так.
UserID, NextDayID
Что я придумал:
select dateadd(dd,(7 - datepart(dw,GETDATE()) + NextDayID ) % 7, getdate())
Кажется, что мы работаем и вернем сегодняшнюю дату, если вы попросите следующий, какой бы день сегодня ни был, я могу добавить неделю, если это необходимо.
Мне интересно, это хорошее решение или есть что-то, что мне не хватает?