Linq DateTime操作比较

时间:2016-10-07 00:49:09

标签: c# asp.net-mvc linq

所以我有这个陈述

SearchResults = (from s in dbContext.tbl_ShippingProgram
                 where s.eta_date.Date > DateTime.Now.Date.AddMonths(-TimePeriod.Value)
                 select s).ToList();

其中SearchResults定义为

public List<tbl_ShippingProgram> SearchResults { get; set; }

TimePeriod.Value是一个int

我很难弄清楚为什么这不起作用,因为选择所有值都没有错误

SearchResults = (from s in dbContext.tbl_ShippingProgram
                 select s).ToList();

完美无缺。任何和所有帮助表示赞赏&lt; 3

EDIT   - 问题是它没有返回任何肯定应该的地方,检查数据库中的值和计算的DateTime.Now值,它应该返回一些东西 Some Example rows that should be returning, the eta date is the first date field

1 个答案:

答案 0 :(得分:1)

尝试DateTime.Now.AddMonths(-TimePeriod.Value).Date

我想你想要调整后日期时间的日期部分。这一直让我感到高兴......

如果这没有帮助,可以尝试其他一些事情:

  1. 计算linq语句之外的日期(尽管您未获得不受支持的错误,但仍然如此)。
  2. 尝试将.Compare()用于日期时间。
  3. 使用明确涵盖所有结果的硬编码日期进行一些健全性检查。