Как сравнить два DateTimes on Time, только игнорируя дату?

Кажется, что каждый всегда игнорирует часть времени, но как бы вы сравнили две даты, игнорируя дату? если мы просто сравниваем их как ВРЕМЯ, похоже, он по-прежнему пользуется самой старой датой.

(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 это говорит, что это будет то же, но LINQ возвращает "Ошибка преобразования времени в значение bigint".

Ответы

Ответ 1

DateTime имеет TimeOfDayProperty, вы можете использовать это, чтобы сравнить время для двух дат следующим образом:

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