我有两个包含日期的变量。 DateStart
和 DateEnd
(在 SQL 中)。
我还有两个 DatePicker
控件(在 WinForm 中)。
我从数据库中导入这两个日期,需要做一些棘手的事情。
所以这两个变量创建了一个日期范围,两个日期选择器创建了另一个日期范围。
如何检查这些日期范围是否与 Sql 查询重叠?
例如(yyyy/mm/dd 格式)
开始日期 = 2012/07/01
,结束日期 = 2012/07/31
| DatePicker1 | DatePicker2 | Overlapping |
--------------------------------------------
| 2012/07/15 | 2012/07/16 | True |
--------------------------------------------
| 2012/07/31 | 2012/08/01 | True |
--------------------------------------------
| 2012/06/20 | 2012/07/01 | True |
--------------------------------------------
| 2012/08/01 | 2012/09/01 | False |
--------------------------------------------
我知道这有点乱,但我不知道还能怎么问。
最佳答案
如果第一个范围的开始在第二个范围的结束之前并且第一个范围的结束在第二个范围的开始之后,则两个日期范围重叠。所以:
where DateStart <= @DatePicker2
and DateEnd >= @DatePicker1
关于c# - 日期范围重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796992/