#c# #datetime #.net-4.0
#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
amp;amp; x.reportingTime.Hour <= date.Hour
amp;amp; x.reportingTime.Minute <= date.Minute
amp;amp; x.reportingFequency.Substring(position, 1) == scheduled
select x;
Кроме того, причина, по которой мы делаем это, заключается в том, что мы не смогли сравнить наше время SQL с временным интервалом, это говорит о том, что оно было бы таким же, но LINQ возвращает «Ошибку преобразования времени в bigint».
Ответ №1:
DateTime
имеет TimeOfDay
свойство, вы можете использовать это для сравнения времени для двух дат следующим образом:
var one = DateTime.Now.AddHours(1);
var two = DateTime.Now;
var diff = one.TimeOfDay - two.TimeOfDay;