2011-07-04 89 views
1

我正在尋找LINQ中的日期比較,我發現了谷歌搜索的代碼。LINQ中的日期比較

var currentDate = DateTime.Now.Date; 

VisitorLog日誌= db.Context.VisitorLogs 。凡(VL => vl.inDate.Date ==的currentdate).FirstOrDefault();

我需要知道上面的代碼工作正常或不。

怎樣比較特別的格式日期就像我在SQL Server中比較日期

compare(varchar(10),mydatefield,112)>=compare(varchar(10),@mydatefield,112) 

所以請指導我如何可以使用LINQ特別格式,與一個以上我比較日期。

謝謝

回答

0

當你分析一個字符串DateTime對象的格式問題。一旦你完成了這一步,並且你有兩個DateTime對象,那麼比較它們的Date屬性是正確的。 Date屬性返回DateTime對象,時間設置爲12:00 am

爲了正確解析日期,您可以將IFormatProvider傳遞給DateTime.Parse()方法。例如。 CultureInfo對象:

DateTime d = DateTime.Parse("07/04/2011", CultureInfo.GetCultureInfo("en-us")); 
1

的事情是,你會在一個特定的格式很少比較日期(除非你想他們比較字符串或東西)。因此引入了DateTime結構。

無論如何,比較日期最常用的方法不是檢查是否相等,而是實際檢查日期是否進入特定範圍。例如:

startDate <= order.OrderDate && order.OrderDate < endDate 
+0

我想以特定格式轉換日期,然後進行比較。我想將這種格式的日期轉換爲YYYYMMDD,然後進行比較。 linq日期比較怎麼可能。 – Mou

+0

這就是整個問題,你不這樣做。將日期解析爲DateTime結構體的整個過程不必處理格式。 DateTime包含您比較的字段(如年,日,月)。否則,你只是比較字符串。 – TheBoyan