如何比较两个DateTimes on Time只忽略日期?

时间:2011-05-20 09:07:10

标签: c# datetime .net-4.0

似乎每个人总是忽略时间部分,但是你如何比较忽略日期的两个日期时间?如果我们只是将它们作为时间进行比较,它似乎仍然偏向于最早的日期。

(12/02/2004 9:00)> (12/02/2011 8:24) - 这是真的。

下面的代码可以运作,但是在分别比较小时和分钟的情况下,感觉有点跳动。

var results = from x in dataContext.GetTable<ScheduleEntity>()                           
              where x.LastRunDate < date.Date 
              && x.reportingTime.Hour <= date.Hour
              && x.reportingTime.Minute <= date.Minute
              && x.reportingFequency.Substring(position, 1) == scheduled
              select x;  

另外,我们这样做的原因是因为我们无法让我们的SQL TIME与TIMESPAN进行比较this说它会是相同的但是LINQ返回“TIME转换为bigint转换错误”。

1 个答案:

答案 0 :(得分:36)

DateTimeTimeOfDayProperty,您可以使用它来比较两个日期的时间,如下所示:

var one = DateTime.Now.AddHours(1);
var two = DateTime.Now;
var diff = one.TimeOfDay - two.TimeOfDay;