DateTimeパラメーターを持つオブジェクトのリストがあります。
LINQを使用してこのリストをクエリし、日付でエントリを返しますが、時間の部分は無視します
したがって、2012年8月10日にいつでも発生するエントリを選択したいと思います。
DateTimeパラメーターを持つオブジェクトのリストがあります。
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 ) )
1日をカバーする時間の範囲を追加できます。
entries.Where(e => e.Property.Date >= new DateTime(2012, 08, 10)
&& e.Property.Date < new DateTime(2012, 08, 11));
EntityFunctions.TruncateTime(EF 6以降)の使用についてはどうですか
var result = context.Employees
.Where(x => EntityFunctions.TruncateTime(x.LoginDate) ==DateTime.Today)
.FirstOrDefault();
名前空間:System.Data.Objects.EntityFunctions.TruncateTime