【mysql】判斷兩個時間段是否存在交集

場景: 數據庫有有兩個字段.開始時間<startTime>,和結束時間<endTime>,指定一個時間段(a,b),a表示開始時間,b表示結束時間。看數據庫中有沒有與(a,b)衝突的時間段,有的話就返回那條記錄。sql


解析:兩個時間段至關於兩個集合,不過是有順序的集合。兩個時間段有交集細分有四種狀況。用sql直接判斷無交集的語句可能也有,可是目前沒有想到,只想到有交集的語句,若是返回不爲空則代表有交集,不然沒有交集。數據庫


sql語句:code

select * from test_table where
    (startTime > a AND startTime < b) OR
    (startTime < a AND endTime > b) OR
    (endTime > a AND endTime < b)
相關文章
相關標籤/搜索