使用Linq进行日期比较

时间:2012-05-14 12:04:15

标签: asp.net sql linq entity-framework

我的sql表中有一个名为“CreatedDate”的DateTime类型列,并使用我的asp.net应用程序中的“DateTime.Now”传递此列的值....

我的CreatedDate列中的数据是,

 CreatedDate
 -----------
 2012-05-07 18:56:17.487
 2012-05-07 18:56:28.443
 2012-05-07 19:21:24.497
 2012-05-14 15:22:04.587

我需要使用此CreatedDate获取数据。

在我的实体框架中,我尝试了像

这样的条件
DataAccess.Entities dataEntities = new DataAccess.Entities();

DataAccess.Employee employee = dataEntities.Employees
                              .First(e => e.CreatedDate == DateTime.Today);
像这样,我有这个日期的数据(2012-05-14),但是这里的mininutes部分不同(the DateTime.Today gives '2012-05-14 12:00:000' like this),它显示错误,例如,sequence不包含任何元素....

我怎样才能比较Linq中的'日期'.....任何人都可以帮助我,,,

3 个答案:

答案 0 :(得分:2)

使用DateTime对象上的Date属性

CreatedDate.Date==DateTime.Today

所以你的代码将是

DataAccess.Employee employee=dataEntities.
                     Employees.First(e=>e.CreatedDate.Date==DateTime.Today);

Date属性返回Date对象的DateTime组件,并将时间值设置为12:00:00 midnight (00:00:00)

答案 1 :(得分:1)

试试这个:

DataAccess.Employee employee =
    dataEntities.Employees.First(e=>e.CreatedDate.Date==DateTime.Today)

答案 2 :(得分:0)

我刚宣布了两个变量,如

DateTime date1=DateTime.Now.Date;
DateTime date2=DateTime.Now.Date.AddDays(1);

并且在条件下我使用了这些变量,如

DataAccess.Employee employee = dataEntities.Employees
                          .First(e => e.CreatedDate >= date1 
                                   && e.CreatedDate < date2);

它的工作......