如何解决 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();
这可能是由于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 实体异常中不受支持