@zhaar

Как выяснить, попадает ли конкретная дата в период с заданной периодичностью?

Есть 2 столбца данных, один из которых содержит дату начала, а второй - период повторения. Как корректно найти, подходит ли текущая дата под то число, которое получится в результате периодического его повторения? Таблица немаленькая, порядка нескольких сотен тысяч строк.

Вот пример:
ДатаНачала: 20181116
Период: 14

Самый простой способ, это посчитать разницу в датах и если число получается круглое, то значит, что период верный:
select datediff(day,'20181116','20190906')/convert(real,14) = 21

Если нецелое, то:
select datediff(day,'20181116','20190906')/convert(real,15) = 19.6

Но в такой схеме, мне непонятно, как проверять, что результат целочисленный? Isnumeric сюда не подходит, если делить без конвертации числа, то всегда буду получать инт...

Может есть какой-то иной метод, который это сразу скажет, что дата соответствует периоду?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
SELECT DATEDIFF( DAY, '20181116', '20190906') % 14
SELECT DATEDIFF( DAY, '20181116', '20190906') % 15
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы