如何解决Linq不正确的日期查询

时间:2014-12-09 14:12:27

标签: c# asp.net-mvc linq

我有两个文本框来获取DateTime。

例如,我在我的数据库和其他DateTime值上有今天的值。

当我选择今天的查询日期时,我无法从数据库中获取今天的日期值以显示。如果我明天选择,我可以得到我想要的东西。

我的意思是当我选择01.01.2014 - 2014年12月9日 - 我可以获得8个数据。(这是不正确的) 如果我选择01.01.2014 - 10.12.2014 - 我可以得到17个数据(这是正确的)

所以我不能得到“8” - 2014年12月9日的日期数据,即使我选择09.12.2014。

我的查询有问题吗?

   @Html.TextBox("min", min, "{0:dd.MM.yyyy}", new { @class = "date", id = "min", @readonly = "true" }) 

   @Html.TextBox("max", max, "{0:dd.MM.yyyy}", new { @class = "date", id = "max", @readonly = "true" }) 

我的模特财产:

public DateTime DateTime{ get; set; }

我的查询:

  model= (MyBL.GetAllValues().Where(a => a.DateTime>= min && a.DateTime<= max && a.DeptId== myDeptId)).ToList();

2 个答案:

答案 0 :(得分:2)

这可能是因为max = 09.12.2014 0:00,即午夜。所以09.12.2014 1:00例如在max之后。您可能只想比较日期,您可以尝试这样做:

MyBL.GetAllValues().Where(a => a.DateTime.Date >= min.Date && a.DateTime.Date <= max.Date && a.DeptId== kullanicininBirimi)

答案 1 :(得分:1)

上面的答案将引发异常,因为LINQ to Entities不支持Date属性。您可以使用EntityFunctions.TruncateTime方法。查看答案How to compare DateTime without time via LINQ?The specified type member 'Date' is not supported in LINQ to Entities Exception