2012-03-05 62 views
0

我有Statistic表有很多字段,其中一个是DateTime。我需要查找当前年份和月份的所有记录。我正在使用下面的查询,但不知道这是最佳解决方案。Linq to SQL筛选日期时间字段按年/月

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

我不认为你可以做更多的从LINQ的,但看看这个答案你怎么能改善查询..如果真的需要HTTP: //stackoverflow.com/a/9524353/782754 – 2012-03-05 09:36:17

回答

0

你可以使用SqlMethods.DateDiffMonth

计数一个月边界数两个非null的日期之间。 对应于SQL Server DATEDIFF函数;使用月份到 指定跨越时间边界的类型。

所以你的查询将是这样的:

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