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

本文关键字:不正确 日期 查询 Linq 何解决 解决 | 更新日期: 2023-09-27 18:33:38

我有 2 个文本框来获取日期时间。

例如,我的数据库中有今天的值和其他日期时间值。

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

我的意思是当我选择 01.01.2014 - 09.12.2014 - 我可以得到 8 个数据。(这是不正确的)如果我选择 01.01.2014 - 10.12.2014 - 我可以得到 17 个数据(这是正确的)

所以我无法获得"8" - 09.12.2014

日期数据,即使我选择 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();

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

这可能是由于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)

上面的答案将引发异常,因为 LINQ to 实体不支持 Date 属性。您可以使用 EntityFunctions.TruncateTime 方法。查看答案 如何通过 LINQ 比较没有时间的日期时间?和指定的类型成员"日期"在 LINQ to 实体异常中不受支持