Linq to SQL是与DB日期范围相交的用户日期范围

时间:2015-01-16 12:28:37

标签: c# mysql sql-server linq linq-to-sql

我需要定义用户日期范围是否与存储在数据库(StartDate和EndDate字段)中的任何其他日期范围相交。 例如DB值

StartDate  | EndDate
2015-01-01 | 2015-01-30
2015-02-01 | 2015-02-25

用户输入StartDate: 2015-01-12 EndDate 2015-02-13. 我需要找出用户范围被占用。 可以使用一个LINQ查询吗?

1 个答案:

答案 0 :(得分:4)

我认为你可以使用这样的查询:

bool overlap = collection.Any(x=>(x.StartDate <= EndDate)&&(x.EndDate >= StartDate));

当然你需要将集合更改为你的db集合(它取决于你正在使用的db框架)

它将确定是否有 ANY 开始日期和结束日期对,它们在提供的两个日期(StartDate和EndDate)之间开始和结束。