DbFunctions 或类似的,用于将 Linq 中的日期时间类型列的时间与实体框架进行比较

问题描述

我知道有一个函数可以只比较日期时间类型列的日期,但是如果我只想将它的时间与另一个时间进行比较怎么办。 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)