兩種寫法。
如圖,4種重合情況和2種不重合情況。

?第一種寫法:
SELECT * FROM table WHERE
(start_time >= a and end_time <= b) -- 被包含了
or (end_time >= a and end_time <=b)
or (start_time >= a and start_time <=b)
or (start_time <= a and end_time >=b)
解析:where后的4個條件分別代表了圖中4種重合的情況。但是第一種情況被2和3包含了,所以簡化一下寫法:
SELECT * FROM table WHERE
(end_time >= a and end_time <=b)
or (start_time >= a and start_time <=b)
or (start_time <= a and end_time >=b);
?第二種寫法:
SELECT * FROM table WHERE not (start_time > b or end_time < a);
歡迎評論區(qū)留言探討。
版權聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至2705686032@qq.com 舉報,一經查實,本站將立刻刪除。原文轉載: 原文出處: