Задать вопрос
@zhaar

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

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

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

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

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

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

Может есть какой-то иной метод, который это сразу скажет, что дата соответствует периоду?
  • Вопрос задан
  • 52 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    MS SQL Server Developer
    5 месяцев
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
  • Сетевая Академия ЛАНИТ
    Выполнение запросов на языке Transact-SQL
    1 неделя
    Далее
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
SELECT DATEDIFF( DAY, '20181116', '20190906') % 14
SELECT DATEDIFF( DAY, '20181116', '20190906') % 15
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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