Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle APEX Новый топик    Ответить
 Нахождение временных пересечений  [new]
Никита А
Member

Откуда:
Сообщений: 172
С нахождением любых пересечений временных интервалов проблем нет.
А нужно найти пересечения временных интервалов больше 30 секунд. Вот тут у меня ступр.
Подскажите пожалуйста, может кто знает такие алгоритмы?
2 окт 20, 08:43    [22207881]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение временных пересечений  [new]
Никита А
Member

Откуда:
Сообщений: 172
Пока обошёлся просто дополнительным условием
SELECT t.*, q.*, ( LEAST(t.e1, q.e2) - GREATEST(t.b1,q.b2) ) *24*60 AS dur
FROM 
(SELECT TO_DATE('01.10.20 08:01:00') AS b1
      , TO_DATE('01.10.20 08:06:00') AS e1 
 FROM dual
) t 
JOIN (SELECT TO_DATE('01.10.20 08:00:00') AS b2
           , TO_DATE('01.10.20 08:10:00') AS e2 FROM dual 
      ) q ON q.b2 < t.e1
         AND q.e2 > t.b1
         AND ( LEAST(t.e1, q.e2) - GREATEST(t.b1,q.b2) ) *24*60*60 >= 30 
2 окт 20, 10:12    [22207946]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle APEX Ответить