私のsqlserverテーブルの列の1つはdatetimeです。where句では、年だけでクエリを実行します(月と日ではありません)。C# を使用して LINQ で実行する必要があります。どうすればそれができるか教えてください。
たとえば、次の表の値の場合
2010/02/12 2011/07/14 2012/11/15
「2011」までにクエリを実行すると、中央の行のみがフェッチされます。
ありがとう
これは非常に簡単に行うことができます。以下の例を参照してください
List<DateTime> test=new List<DateTime>{DateTime.Today,DateTime.Today.AddDays(3),DateTime.Today.AddYears(1),DateTime.Today.AddDays(1).AddYears(1)};
test.Where (c => c.Year==2013).Dump();
test.Where (c => c.Year==2012).Dump();
結果は
5IEnumerable<DateTime> (2 items) 4
11/5/2013 12:00:00 AM
11/6/2013 12:00:00 AM
5IEnumerable<DateTime> (2 items) 4
11/5/2012 12:00:00 AM
11/8/2012 12:00:00 AM
編集: Dump() 関数は LINQPad の一部です。これはネイティブの .NET メソッドではありません。LINQPad の外でテストするには、これを取り外します。