LINQ 比较时间跨度

LINQ Compare TimeSpan

在我的数据库中有像

这样的行

在我的 Blazor 应用程序中,如果时钟在 TimeStart 前 15 分钟和 TimeEnd 前 15 分钟,我需要找到匹配项。

如果时钟在 9.45 和 10.45 之间,我想要 RowID 27

如果时钟在 10.45 和 11.45 之间,我想要 RowID 28

我试过:

 IEnumerable<Overview> mydata = from a in overview
    where (a.Timestart > Minus15Min && 
           a.Timeend.Value.Subtract(new TimeSpan(00, 15, 00)) > Minus15Min)
    select a;

您的问题在 Start 和 End 方面非常对称,但您的代码对它们的处理方式不同。另外,你有两个 > 的范围,这是非常值得怀疑的。

怎么样

var nowPlus15 = DateTime.Now.AddMinutes(15);
IEnumerable<Overview> mydata = from a in overview
    where (a.Timestart <= nowPlus15  && 
           a.Timeend > nowPlus15)
    select a;