Исходя из переменной даты начала + интервал дней, мне нужно найти следующую дату после текущего дня - PullRequest
1 голос
/ 16 января 2020

У меня есть дата привязки, например. 01-01-2020, который является переменной. У меня также есть интервал дней, например. 7 дней, что тоже является переменной. Мне нужно получить следующую дату или после текущей даты, которая представляет собой целое число интервалов после даты привязки.

Сейчас 01-16-2020. Дата, которую я ожидал бы, 01-22-2020.

Дата результата будет в пределах оператора SELECT в виде столбца. Оператор select предоставляет переменные.

1 Ответ

0 голосов
/ 16 января 2020

Рассмотрим:

dateadd(
    day,
    7 - datediff(day, '2020-01-01', cast(getdate() as date)) % 7,
    cast(getdate() as date)
)

Где дата привязки равна '2020-01-01', а 7 - интервал.

Это работает, принимая разницу дней между текущей датой и привязкой : на сегодня 2020-01-16 результат равен 15. Затем мы получаем модуль 7 этого значения (который равен 1) и вычитаем его из 7 (дает 6), что дает нам количество дней, которое нам нужно добавить к текущей дате, чтобы получить ожидаемое значение (2020-01-22).

Демонстрация на DB Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...