我正在寻找以下查询的LINQ等价物
Select * from ct_rate
WHERE
'2010-10-01 00:00:00'
BETWEEN start_date and end_date;
任何想法?
答案 0 :(得分:7)
您需要使用两个比较操作:
DateTime date = new DateTime(2010, 10, 1);
var results = from rate in ct_rates
where rate.StartDate <= date && rate.EndDate >= date
select rate;
答案 1 :(得分:3)
只需使用普通比较运算符
var result = ct_rates
.Where(x => x.start_date <= myDate && x => x.endDate >= myDate);
答案 2 :(得分:0)
这样的事情?
var result = from context.ct_rate.Where(d => d.start_date >= "2010-10-01 00:00:00" && d.end_date <= "2010-10-01 00:00:00")
答案 3 :(得分:0)
在我们的案例中,罗伯特的答案接近我所寻求的。在我们的数据模型中,我们的“结束”或“通过”日期列可以为空。
需要以下内容:
Category.Where(
w => w.ValidFrom <= now &&
(w.ValidThru == null ? DateTime.MaxValue : w.ValidThru) >= now).Select(s => s).Dump();
答案 4 :(得分:0)
我发现只想比较数据部分时这很有用。
var results = from rate in ct_rates
where rate.StartDate.Date <= date && rate.EndDate.Date >= date
select rate;