我有四個unix時間。兩個是「今天」的開始和結束(以當天爲準) - 即00:00:00和23:59:59 - 另外兩個是用戶選擇的時間。SQL心智塊 - 檢查一個時間段是否與另一個時間段重疊
我需要的是一個(TSQL友好的)查詢來檢查「今天」時間之間的時間段是否與用戶時間重疊。誰能幫忙?
我有四個unix時間。兩個是「今天」的開始和結束(以當天爲準) - 即00:00:00和23:59:59 - 另外兩個是用戶選擇的時間。SQL心智塊 - 檢查一個時間段是否與另一個時間段重疊
我需要的是一個(TSQL友好的)查詢來檢查「今天」時間之間的時間段是否與用戶時間重疊。誰能幫忙?
我有這樣的一個txt文檔記(日期誦讀困難):
相交:
Date Range 1 | |>----------------------<|
Date Range 2 | |>------------------------<|
where Range1Start <= Range2End and Range1End >= Range2Start
範圍1範圍2:
Date Range 1 | |>-------------<|
Date Range 2 | |>------------------------<|
where Range1Start >= Range2Start and Range1End <= Range2End
範圍2在範圍1:
Date Range 1 | |>----------------------<|
Date Range 2 | |>-------------<|
where Range2Start >= Range1Start and Range2End <= Range1End
where UserStart <= TodayEnd and
UserEnd >= TodayStart
我知道這個職位是舊的,但我想接受的答案是incomplete.There大部分是至少一個或多個交叉的情況下,並修改上面。
INTERSECT(FIXED)
Date Range 1 | |>----------------------<|
Date Range 2 | |>------------------------<|
WHERE Range1Start <= Range2Start AND Range1End <= Range2End AND Range1End>=Range2Start
定影這樣允許避免在範圍1檢測範圍2作爲交集(這是在接受溶液中的查詢結果)
接下來的兩是確定的,但沒有得到很好的示出
範圍1在範圍2
Date Range 1 | |>-------------<|
Date Range 2 | |>------------------------<|
Date Range 1 | |>------------------------<|
Date Range 2 | |>------------------------<|
WHERE Range1Start >= Range2Start AND Range1End <= Range2End
範圍2在範圍1:
Date Range 1 | |>------------------------<|
Date Range 2 | |>-------------<|
Date Range 1 | |>------------------------<|
Date Range 2 | |>------------------------<|
WHERE Range2Start >= Range1Start AND Range2End <= Range1End
最後第二交叉
INTERSECT(右)
Date Range 1 | |>----------------------<|
Date Range 2 | |>------------------------<|
WHERE Range2Start <= Range1Start AND Range2End <= Range1End AND Range1Start <=Range2End
取決於你需要什麼,我會建議不使用大於(> =)且小於(< =)的原因你還asume,等於期間在這些團體,但取決於你
EQUALS RANGES
Date Range 1 | |>------------------------<|
Date Range 2 | |>------------------------<|
WHERE Range1Start = Range2Start AND Range1End = Range2End