我的 sqlserver 表中的一列是日期时间。在 where 子句中,我只按年份(不是月份和日期)进行查询。我必须使用 C# 在 LINQ 中执行此操作。请让我知道怎么做。
例如,如果以下是表中的值
2010 年 2 月 12 日 2011 年 7 月 14 日 2012 年 11 月 15 日
如果我按“2011”查询,则只应获取中间行。
谢谢
这可以很容易地完成。请参阅下面的示例
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 之外进行测试。