我使用LINQ从数据库中查询了IQueryable结果,现在我必须根据字段date_sent过滤所有行。应从date_sent到当前日期计算天数。这个总数没有。应该检索0到30天范围内的天数。我该怎么做。我有以下代码,但它不起作用。没有错误,但没有正确过滤。
query = query.Where(x => x.DATE_SENT != null);
query = query.Where(x => (int)(EntityFunctions.DiffDays(currentDate, (DateTime)x.DATE_SENT)) >= 0 &&
(int)(EntityFunctions.DiffDays(currentDate, (DateTime)x.DATE_SENT)) <= 30);
关于如何处理它的任何指导都会很棒。
答案 0 :(得分:1)
您可以使用此查询获取它。
var dtDiff = DateTime.Now.AddDays(-30);
query = query.Where(z=> z.DATE_SENT >= dtDiff);
31-60天
var dtDiff31 =DateTime.Now.AddDays(-31);
var dtDiff60 =DateTime.Now.AddDays(-60);
query = query.Where(z=> z.DATE_SENT >= dtDiff60 && z.DATE_SENT <= dtDiff31 );
答案 1 :(得分:0)
您似乎只想过滤一系列日期:
DateTime filterDate = currentDate.AddDays(-30);
query = query.Where(x => x.DATE_SENT >= filterDate);
如果currentDate
可能会有所不同,请添加第二个条件:
query = query.Where(x => x.DATE_SENT >= filterDate && x.DATE_SENT < currentDate);