Linq查询仅使用datetime的year部分

时间:2012-11-06 03:45:38

标签: c# sql linq

我的sqlserver表中的一列是datetime。在where子句中,我只查询年份(不是月份和日期)。我必须使用C#在LINQ中完成它。请告诉我怎么做。

例如,如果以下是表格中的值

02/12/2010 2011年7月14日 2012年11月15日

如果我按'2011'查询,则只应获取中间行。

由于

1 个答案:

答案 0 :(得分:2)

这可以很容易地完成。请参阅下面的示例

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外部进行测试。