shoorick: (Default)
[personal profile] shoorick
Чтоб самому потом не забыть:
SELECT *,(d2>=d3 AND d1<=d4) AS cmp FROM `test_ival`
Возвращает 1 в случае пересечения диапазонов [d1; d2] c [d3; d4] и 0 в противном случае.
Если вместо >= и <= использовать соответственно > и <, получится проверка пересечения (d1; d2) c (d3; d4).

Date: 2005-12-23 10:45 am (UTC)
From: (Anonymous)
select t1.startwork, t2.endwork
from
workers t1, workers t2
where
t2.startwork >= t1.startwork and t2.startwork < t1.endwork
order by 1

Ну пусть такой код уже склеивает интервалы, но как их склеить к минимуму ?
При чем так, чтобы непропали единичные интервали, ибо при склеивании они пропадают если не использовать t2 >= t1 and t2 < t1 вместо приведеного выше кода.

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 21st, 2026 10:15 pm
Powered by Dreamwidth Studios