Задавайте вопросы, мы ответим
Вы не зашли.
Прошу помочь.
Есть таблица с двумя полями, которые определяют период D с датами D1 и D2.
D1 всегда меньше или равно D2.
Периоды определены с точностью до минуты.
Нужно определить, что период P определяющими датами P1 и P2 (например, год, месяц, день, час) полностью покрывается периодами из таблицы.
Желательно решить с помощью SQL запроса.
Заранее спасибо за любые идеи!
Отредактированно klow (20.12.2016 10:40:38)
Неактивен
не понятно, трактовать можно по разному
можно на маленьком тестовом примере
Неактивен
Пример таблицы:
D1, D2
2016-01-01 00:00, 2016-02-01 00:00
2016-02-01 00:00, 2016-03-01 15:00
2016-03-01 16:00, 2016-12-31 00:00
Период год 2016 (P1 - 2016-01-01 00:00, P2 - 2016-12-31 23:59)
не покрывается периодами из таблицы есть разрывы, например 2016-03-01 15:00 - 2016-03-01 16:00 и 2016-12-31 00:00 - 2016-12-31 23:59
Период месяц январь 2016 года (P1 - 2016-01-01 00:00, P2 - 2016-01-31 23:59)
полностью покрывается периодами таблицы
Неактивен
1. определить диапазоны, которые пересекаются с заданным
c помощью пользовательских переменных пройти по диапазонам по возрастанию d1, определяя наличие разрыва
2. преобразовать заданный диапазон в набор секунд (или заранее опорная таблица)
проверить существует ли секунда не попадающая ни в какой из диапазонов
чую, что есть хороший вариант, но не соображу как
Неактивен
Спасибо!
Да, эти варианты возможны, но не очень хороши.
Второй вариант даже можно упростить в моем случае - раскладывая до минуты. То есть, получиться, примерно, 525 тыс. значений для года.
Неактивен