場景: 數據庫有有兩個字段.開始時間<startTime>,和結束時間<endTime>,指定一個時間段(a,b),a表示開始時間,b表示結束時間。看數據庫中有沒有與(a,b)沖突的時間段,有的話就返回那條記錄。
解析:兩個時間段相當於兩個集合,不過是有順序的集合。兩個時間段有交集細分有四種情況。用sql直接判斷無交集的語句可能也有,但是目前沒有想到,只想到有交集的語句,如果返回不為空則表明有交集,否則沒有交集。
sql語句:
select * from test_table where
(startTime > a AND startTime < b) OR
(startTime < a AND endTime > b) OR
(endTime > a AND endTime < b)