2012-03-05 12 views
0

私は多くのフィールドを持つStatisticテーブルを持っており、そのうちの1つはDateTimeです。今年と今月のすべてのレコードを見つける必要があります。私は以下のクエリを使用していますが、この最適な解決策はわかりません。Linq to SQLフィルタDateTimeフィールド年/月別

Statistics.Count(p => p.DateStamp.Year == DateTime.UtcNow.Year && p.DateStamp.Month == DateTime.UtcNow.Month); 
+0

..本当に必要なHTTPの場合: //stackoverflow.com/a/9524353/782754 –

答えて

0

あなたはSqlMethods.DateDiffMonthを使用することができます。

は、二つの非NULL可能日付の間の月の境界数をカウントします。 SQL Server DATEDIFF関数に対応します。月を使用して 時間境界のタイプを指定します。

ので、あなたのクエリは次のようになります:私はあなたがLINQのからより多くを行うことができると思いますが、このクエリをどのように改善できるか、この答えを見ていない

Statistics.Count(p => 
    SqlMethods.DateDiffMonth(DateTime.UtcNow, p.DateStamp) == 0 
);