我的sqlserver表中的一列是datetime。在where子句中,我只查询年份(不是月份和日期)。我必须使用C#在LINQ中完成它。请告诉我怎么做。
例如,如果以下是表格中的值
02/12/2010 2011年7月14日 2012年11月15日
如果我按'2011'查询,则只应获取中间行。
由于
答案 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外部进行测试。