Linq to SQL按年/月过滤DateTime字段

时间:2012-03-05 09:33:13

标签: linq-to-sql

我的Statistic表包含许多字段,其中一个是DateTime。我需要查找当前年份和月份的所有记录。我正在使用下面的查询,但不确定这是最佳解决方案。

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

1 个答案:

答案 0 :(得分:0)

您可以使用SqlMethods.DateDiffMonth

  

计算两个不可为空的日期之间的月份边界数。   对应于SQL Server DATEDIFF函数;用月来   指定时间跨越的类型。

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

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