可以在Linq to SQL中的SQL中执行此操作吗?
Select field from table where date between '2010-01-01' and '2010-01-31';
我意识到我能做到:
where (monthBeginDate < a.StopDateActual && a.StopDateActual < monthEndDate)
但我很好奇我是否可以做前者。我有一个坏习惯,就是把那些不那么多的事情搞砸了。
答案 0 :(得分:5)
您可以执行以下操作:
public bool Between(DateTime value, DateTime from, DateTime To) {
return value > from && value < to;
}
where Between(a.StopDateActual, monthBeginDate, monthEndDate)
但是,您应该注意,这适用于IEnumerable
而不是IQueryable
,即结果将在应用where之前从数据源中提取。在大量数据的情况下,这可能是一个性能问题,因此,你可以做的最好的地方就是你要做的最好的事情......只需要注意&gt;和&lt; !!!
答案 1 :(得分:4)
不,这是做到这一点的方法。我相信C#没有介于运算符之间。
你总是可以像我一样作弊并写一个扩展方法:
public static bool BetweenDates (this DateTime checker, DateTime floor, DateTime ceiling)
{
return (checker <= ceiling) && (checker >= floor);
}
然后你可以这样做; - )
.Where(s => s.StopDateActual.BetweenDates(monthBeginDate, monthEndDate));