LINQ中的日期比较

时间:2011-07-04 07:55:16

标签: c# linq datetime

我在LINQ中寻找日期比较,我找到了搜索谷歌的代码。

var currentDate = DateTime.Now.Date;

VisitorLog log = db.Context.VisitorLogs          .Where(vl => vl.inDate.Date == currentDate).FirstOrDefault();

我需要知道上面的代码是否正常工作。

我如何比较特定格式的日期,比如我在sql server中比较日期

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

所以请指导我如何使用linq比较日期,特别是上面的格式。

感谢

3 个答案:

答案 0 :(得分:1)

此链接可以帮助您吗?

How to compare dates in LINQ?

where t.CreateDate.Date < DateTime.Today.AddMonths(-1)

答案 1 :(得分:1)

问题是您很少会以特定格式比较日期(除非您想将它们作为字符串或其他内容进行比较)。因此引入了DateTime结构。

无论如何,最常用的比较日期的方法不是检查是否相等,而是要实际检查日期是否进入特定范围。例如:

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

答案 2 :(得分:0)

将字符串解析为DateTime对象时格式很重要。完成后,您有两个DateTime对象,然后比较它们的Date属性是正确的做法。 Date属性返回DateTime对象,时间设置为12:00 am

为了正确解析日期,您可以将IFormatProvider传递给DateTime.Parse()方法。例如。 CultureInfo对象:

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