DbFunctions 或类似的将 Linq 中日期时间类型列的时间与 Entity Framework 进行比较
DbFunctions or similar to compare time of day of a datetime type column in Linq to Entity Framework
我知道有一个函数可以只比较日期时间类型列的日期,但是如果我只想比较它的时间和另一个时间怎么办。 Linq To Entities 中有函数吗?
DbFunctions.TruncateTime(q.EndDate.Value)
它并不漂亮,但您可以将 Diff
变体方法与 TruncateTime
结合使用。例如,将时间与秒进行比较:
DbFunctions.DiffSeconds(DbFunctions.TrucateTime(x.Date1), x.Date1) -
DbFunctions.DiffSeconds(DbFunctions.TrucateTime(x.Date2), x.Date2) == 0
会告诉你这两个时间(不同日期)是否相同。
我用过这个,效果很好。
SqlFunctions.DatePart("hh", t.Time.Value) == SqlFunctions.DatePart("hh", newTime) && SqlFunctions.DatePart("n", t.Time.Value) == SqlFunctions.DatePart("n", newTime)
我知道有一个函数可以只比较日期时间类型列的日期,但是如果我只想比较它的时间和另一个时间怎么办。 Linq To Entities 中有函数吗?
DbFunctions.TruncateTime(q.EndDate.Value)
它并不漂亮,但您可以将 Diff
变体方法与 TruncateTime
结合使用。例如,将时间与秒进行比较:
DbFunctions.DiffSeconds(DbFunctions.TrucateTime(x.Date1), x.Date1) -
DbFunctions.DiffSeconds(DbFunctions.TrucateTime(x.Date2), x.Date2) == 0
会告诉你这两个时间(不同日期)是否相同。
我用过这个,效果很好。
SqlFunctions.DatePart("hh", t.Time.Value) == SqlFunctions.DatePart("hh", newTime) && SqlFunctions.DatePart("n", t.Time.Value) == SqlFunctions.DatePart("n", newTime)