Ответ 1
DateTime
имеет TimeOfDayProperty
, вы можете использовать это, чтобы сравнить время для двух дат следующим образом:
var one = DateTime.Now.AddHours(1);
var two = DateTime.Now;
var diff = one.TimeOfDay - two.TimeOfDay;
Кажется, что каждый всегда игнорирует часть времени, но как бы вы сравнили две даты, игнорируя дату? если мы просто сравниваем их как ВРЕМЯ, похоже, он по-прежнему пользуется самой старой датой.
(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".
DateTime
имеет TimeOfDayProperty
, вы можете использовать это, чтобы сравнить время для двух дат следующим образом:
var one = DateTime.Now.AddHours(1);
var two = DateTime.Now;
var diff = one.TimeOfDay - two.TimeOfDay;