1

我的 sqlserver 表中的一列是日期时间。在 where 子句中,我只按年份(不是月份和日期)进行查询。我必须使用 C# 在 LINQ 中执行此操作。请让我知道怎么做。

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

2010 年 2 月 12 日 2011 年 7 月 14 日 2012 年 11 月 15 日

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

谢谢

4

1 回答 1

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

于 2012-11-06T03:49:10.517 回答