2011-07-04 88 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