SQL mental block-检查一个时间段是否与另一个时间段重叠

use*_*745 2 sql t-sql

我有四次unix时间。两个是“今天”的开始和结束(即当天的哪一天),即00:00:00和23:59:59-另外两个是用户选择的时间。

我需要一个(对TSQL友好的)查询,以检查“今天”时间之间的时间段是否与用户时间重叠。有人可以帮忙吗?

ben*_*ear 5

我在txt文档中有此要记住(日期阅读障碍):

相交:

Date Range 1   |         |>----------------------<|
Date Range 2   |                 |>------------------------<|

where Range1Start <= Range2End and Range1End >= Range2Start
Run Code Online (Sandbox Code Playgroud)

范围2中的范围1:

Date Range 1   |                   |>-------------<|
Date Range 2   |                 |>------------------------<|


where Range1Start >= Range2Start and Range1End <= Range2End
Run Code Online (Sandbox Code Playgroud)

范围1中的范围2:

Date Range 1   |         |>----------------------<|
Date Range 2   |                 |>-------------<|


where Range2Start >= Range1Start and Range2End <= Range1End
Run Code Online (Sandbox Code Playgroud)