2012-07-23 38 views

回答

4

我有這樣的一個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 
2
where UserStart <= TodayEnd and 
     UserEnd >= TodayStart 
0

我知道這個職位是舊的,但我想接受的答案是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