在LINQ-to-Entities查询中将时间设置为零,其中包括datetime列

时间:2013-06-17 11:46:18

标签: c# date linq-to-entities

我不确定是否可能,但我已经尝试了半天只使用日期来过滤MS SQL数据库中的记录,我得到了这个问题。我正在使用Repository模式,所以我得到了我的实体的所有记录,如下所示:

var rows = DocumentsRepository.All();

Documents具有datetime类型的列Date,我需要在数据库中保留时间,但是当我准备进行过滤时,我想只使用日期,如果可能的话,设置小时,分钟,秒和毫秒到零。

是否可以以及如何在LINQ中执行此操作?

1 个答案:

答案 0 :(得分:1)

如果您在存储库中使用EF,我猜想EntityFunctions.TruncateTime(datetimeObj)可以解决问题。

    IQueryable<Entity> query = query.Where(x => EntityFunctions.TruncateTime(x.CreatedAt) == DateTime.Today);

    var someList = query.ToList();