我有一个DateTime参数的对象的列表。如何在日期时间属性忽略时间部分的情况下选择Linq by Date项目?
我想使用LINQ查询这份名单和日期,但忽略了时间部分
所以我想选择发生在上2012年8月10日的任何时间的任何条目返回条目。
我有一个DateTime参数的对象的列表。如何在日期时间属性忽略时间部分的情况下选择Linq by Date项目?
我想使用LINQ查询这份名单和日期,但忽略了时间部分
所以我想选择发生在上2012年8月10日的任何时间的任何条目返回条目。
您可以使用此代码段用于内存查询:
var theDate = new DateTime(2012, 08, 10);
var entriesOnTheDate = list.Where(item => item.DateTimeField.Date.Equals(theDate));
用于查询针对SQL Server数据源,您可以使用SqlFunctions.DatePart
提取日,月,年,并分别比较。
var entriesOnTheDate = dbContext
.EntriesWithDateTimeField
.Where(item => SqlFunctions.DatePart("Year", item.DateTimeField) == 2012
&& SqlFunctions.DatePart("Month", item.DateTimeField) == 8
&& SqlFunctions.DatePart("Day", item.DateTimeField) == 12);
entries.Where(e => e.Property.Date == new DateTime(2012, 08, 10))
您可以添加的时间范围内涵盖整个一天:
entries.Where(e => e.Property.Date >= new DateTime(2012, 08, 10)
&& e.Property.Date < new DateTime(2012, 08, 11));
怎么样(EF 6日起)
var result = context.Employees
.Where(x => EntityFunctions.TruncateTime(x.LoginDate) ==DateTime.Today)
.FirstOrDefault();
命名空间: System.Data.Objects.EntityFunctions.TruncateTime
T只有日期真的很容易。 +1 – 2012-08-14 14:45:44