#.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)