sql 時間段交叉查詢是否有交集

2022-03-29 23:21:27 字數 1579 閱讀 2808

--雙11

活動結束時間大於當前伺服器時間代表有效期的活動

--實現1

select

*from prodcar a where a.enddate>

getdate

()and a.enddate >=

'2019-11-07 00:00:00.000

'and

'2019-11-07 18:00:00.000

'>

a.begindate

--實現2

--給定時間區間(begin,end),資料庫欄位begindate與enddate,現在要判斷它們之間是否有交集

select

*from prodcar a where a.enddate>

getdate

()and

not ((a.enddate <

'2019-11-04 00:00:00.000

') or (a.begindate >

'2019-11-05 18:00:00.000'))

--實現3

select

*from

prodcar a

where a.enddate>

getdate() and

(a.begindate

>

'2019-11-04 00:00:00.000

'and a.begindate <

'2019-11-05 18:00:00.000

') or (a.begindate <

'2019-11-04 00:00:00.000

'and a.enddate >

'2019-11-05 18:00:00.000')

or(a.enddate >

'2019-11-04 00:00:00.000

'and a.enddate <

'2019-11-05 18:00:00.000')

--實現4

select

*from prodcar a where a.enddate>

getdate

()and

( a.begindate

between

'2019-11-04 00:00:00.000

'and ('

2019-11-05 18:00:00.000

') )

or ( a.enddate between

'2019-11-04 00:00:00.000

'and ('

2019-11-05 18:00:00.000

') )

or ( '

2019-11-04 00:00:00.000

'between a.begindate and

a.enddate )

or ( '

2019-11-05 18:00:00.000

'between a.begindate and a.enddate )

mysql查詢兩個時間段是否有交集

1.需求 查詢兩個時間段是否有交集 2.分析 分為三種情況 入參 查詢開始時間,查詢結束時間 資料庫字段 start date,end date 2.1 查詢開始時間在start date與end date之間,則肯定有交集 2.2 查詢結束時間在start date與end date之間,則肯定有...

sql語句判斷兩個時間段是否有交集

場景 資料庫有有兩個欄位.開始時間,和結束時間,指定乙個時間段 a,b a表示開始時間,b表示結束時間。看資料庫中有沒有與 a,b 衝突的時間段,有的話就返回那條記錄。解析 兩個時間段相當於兩個集合,不過是有順序的集合。兩個時間段有交集細分有四種情況。用sql直接判斷無交集的語句可能也有,但是目前沒...

sql語句判斷兩個時間段是否有交集

場景 資料庫有有兩個欄位.開始時間,和結束時間,指定乙個時間段 a,b a表示開始時間,b表示結束時間。看資料庫中有沒有與 a,b 衝突的時間段,有的話就返回那條記錄。解析 兩個時間段相當於兩個集合,不過是有順序的集合。兩個時間段有交集細分有四種情況。用sql直接判斷無交集的語句可能也有,但是目前沒...