Linq to SQL фильтр поле DateTime по году / месяцу - PullRequest
0 голосов
/ 05 марта 2012

У меня есть Statistic таблица со многими полями, и одно из них - DateTime.Мне нужно найти все записи за текущий год и месяц.Я использую запрос ниже, но не уверен, что это оптимальное решение.

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

1 Ответ

0 голосов
/ 05 марта 2012

Вы можете использовать SqlMethods.DateDiffMonth:

Подсчитывает количество границ месяца между двумя ненулевыми датами.Соответствует функции SQL Server DATEDIFF;используя месяц, чтобы указать тип пересечения временной границы.

, поэтому ваш запрос будет выглядеть так:

Statistics.Count(p => 
    SqlMethods.DateDiffMonth(DateTime.UtcNow, p.DateStamp) == 0
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...