DateTimeパラメータを持つオブジェクトのリストがあります。DateTimeプロパティのTime部分を無視して、DateによるLinqで項目を選択するにはどうすればいいですか?
私はこのリストを照会し、日付が、は、だから私は2012年8月10日上の任意の時点で発生するすべてのエントリを選択したい時間部分を無視してエントリを返すためにLINQを使用したい
。
DateTimeパラメータを持つオブジェクトのリストがあります。DateTimeプロパティのTime部分を無視して、DateによるLinqで項目を選択するにはどうすればいいですか?
私はこのリストを照会し、日付が、は、だから私は2012年8月10日上の任意の時点で発生するすべてのエントリを選択したい時間部分を無視してエントリを返すためにLINQを使用したい
。
あなたは、メモリ内のクエリにこのスニペットを使用することができます。
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))
あなたはあなたの全体の一日カバー倍の範囲を追加することができますどのようなEntityFunctions.TruncateTime(EF 6以降)
var result = context.Employees
.Where(x => EntityFunctions.TruncateTime(x.LoginDate) ==DateTime.Today)
.FirstOrDefault();
名前空間の使用について
entries.Where(e => e.Property.Date >= new DateTime(2012, 08, 10)
&& e.Property.Date < new DateTime(2012, 08, 11));
を: System.Data.Objects.EntityFunctions.TruncateTime
T唯一の日付は本当に簡単ですesting。 +1 –