Функции базы данных или аналогичные для сравнения времени суток столбца типа datetime в Linq с Entity Framework

#.net #entity-framework #linq #sqldatetime #dbfunctions

Вопрос:

Я знаю, что есть функция для сравнения только даты столбца типа datetime, но что, если я хочу сравнить только его время с другим временем. Есть ли функция в Linq для сущностей?

 DbFunctions.TruncateTime(q.EndDate.Value)
 

Ответ №1:

Это не очень красиво, но вы можете использовать комбинацию Diff вариантного метода с TruncateTime . Например, чтобы сравнить время до второго:

 DbFunctions.DiffSeconds(DbFunctions.TrucateTime(x.Date1), x.Date1) -
    DbFunctions.DiffSeconds(DbFunctions.TrucateTime(x.Date2), x.Date2) == 0
 

Сказал бы вам, совпадают ли два раза (в разные даты) или нет.

Ответ №2:

Я использовал это, и это сработало нормально.

 SqlFunctions.DatePart("hh", t.Time.Value) == SqlFunctions.DatePart("hh", newTime) amp;amp; SqlFunctions.DatePart("n", t.Time.Value) == SqlFunctions.DatePart("n", newTime)