2012-11-06 84 views
1

我的sqlserver表中的一列是datetime。在where子句中,我只查詢年份(而不是月份和日期)。我必須在LINQ中使用C#來完成它。請讓我知道如何做到這一點。僅使用日期時間的一部分的Linq查詢

例如,如果以下是表中

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

的值,如果我的「2011」進行查詢,只中間一排應該被取走。

謝謝

回答

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 

編輯: 轉儲()函數是LINQPad的一部分。這不是一個本地的.NET方法。刪除它以在LINQPad之外進行測試。

相關問題