从数据库中获取介于两个日期之间的数据

时间:2012-04-19 18:26:15

标签: asp.net-mvc database linq

我有一个数据库,其中包含各列,其中包括“生效日期”和“终止日期”列

情况是在添加记录之前我需要确保给定的有效和终止日期集合没有重叠记录。我怎么能实现这个?我正在使用LINQ构建带有MVC的应用程序。

谢谢!

2 个答案:

答案 0 :(得分:2)

您应该检查startDate和TerminationDate中的任何记录是否在新记录的开始和终止日期,您可以使用linq执行此操作:

bool overlap = db.Records.Any(x=>(x.TerminationDate >= givenRecord.StartDate 
                  && x.StartDate <= givenRecord.TerminationDate) ||
                  (x.TerminationDate <= givenRecord.TerminationDate 
                  && x.StartDate >= givenRecord.StartDate));

答案 1 :(得分:1)

var result = (from t in dbContext.table
             where t.EffectiveDate.Value <= yourDate && 
             t.TerminationDate.Value >= youDate
             select t).Count();
if(result > 0)
{
//Overlap
}