根据总天数

时间:2016-11-21 18:19:20

标签: c# asp.net entity-framework linq

我使用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);                                                         

关于如何处理它的任何指导都会很棒。

2 个答案:

答案 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);