是否可以创建linq查询以查找日期范围内的所有记录?
例如:
我有VacationStart,VacationEnd的桌子 - 都是datetime,我需要找到当前日期的所有待定假期。
我正在尝试
context.Vacations..Where(x=> x.VacationStart >= DateTime.Now && x.VacationEnd < DateTime.Now)
但我得到0条记录......
样本数据2011-10-27 08:30:00.000 2011-10-28 17:00:00.000
当前日期:2011-10-26 23:39:46.297
我哪里错了?
由于
答案 0 :(得分:1)
你要求在NOW之后开始并在NOW,Impossible之前结束的假期。尝试询问并比较不同的开始时间和结束时间以及开始时间小于结束时间的情况。
仅提供当前正在进行的假期。
var query = context.Vacations.Where(v => v.VacationEnd > DateTime.Now
&& v.VacationStart < DateTime.Now);
给出尚未开始的假期。
var query = context.Vacations.Where(v => v.VacationStart > DateTime.Now);
提供正在进行或尚未开始的假期。
var query = context.Vacations.Where(v => v.VacationEnd > DateTime.Now);
最后一个不会过滤任何未来的假期。