c# - 日期范围重叠

标签 c# sql-server-2008 date-range

我有两个包含日期的变量。 DateStartDateEnd(在 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

A good explanation is this way .

关于c# - 日期范围重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796992/

相关文章:

sql - 相同的 Row_Number 具有相同的值

SQL Server 2008 : I/O Wait Time per Database File

date-range - React-datepicker 日期范围

c# - 如何检查类型是否实现了 ICollection<T>

c# - 如何将不连续的单元格范围从 Excel 传递到 ExcelDNA 函数

sql-server - SQL Server 事件监视器在多长时间内查看最近的昂贵查询

sql - 如何在 Postgres 中对数组列使用 BETWEEN 条件?

c# - 如何强制所有程序线程在程序关闭时退出?

c# - 如何将表值参数传递给 .NET Core 中的 Dapper?

Excel宏: Find and Compare Username from a Range of Authorized Usernames