2012-05-14 139 views
1

我有我的SQL表名为“CreatedDate”一个DateTime类型列,和我通过使用“DateTime.Now”从我的asp.net应用程序通过此列的值....日期比较使用LINQ

在我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得到DATAS。

在我的实体框架

我试着像

DataAccess.Entities dataEntities = new DataAccess.Entities(); 

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

像这样的情况,我有数据,这个日期(2012-05-14),但mininutes部分differes (the DateTime.Today gives '2012-05-14 12:00:000' like this)在这里,它表明类似的错误,序列不包含任何元素....

我怎样才能比较“日期”单独Linq中.....任何人都可以帮助我在这里,,,

回答

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); 

其工作....

2

使用Date物业DateTime对象

CreatedDate.Date==DateTime.Today 

所以,你的代码将

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

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

+0

非常感谢Shyju,你救了我时间,我一直在尝试超过1小时....感谢alottttttttt – shanish

+0

@Shanish:很高兴它帮助了你。 – Shyju

+0

但是它的错误例如“指定的类型成员Date”在LINQ to Entities中不被支持,只支持初始值设定项,实体成员和实体导航属性。 – shanish

1

试试这个:

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

非常感谢dasblinkenlight – shanish