我有一個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