我想从数据库中获取一个列表,其中 MyDate 是今天或明天。
我写了以下代码。

_Log("Now: " + DateTime.Now.ToString());

var v = db_TS.TS_Test.Where(x => DbFunctions.DiffDays(x.MyDate,DateTime.Now) < 2);
foreach (var item in v.ToList())
{
     _Log("MyDate: " + item.MyDate.ToString());
}

记录如下:

现在:11/08/2016 10:50:00
我的日期:27/09/2017 09:35:00

请帮我找出代码中出了什么问题?
谢谢

最佳答案

你应该做 DbFunctions.DiffDays(DateTime.Now,x.MyDate) 因为它应该像从第二个参数中减去第一个参数一样工作,所以在你的情况下,DiffDays 返回一个负数。

总结一下,如果你有 DbFunctions.DiffDays(date1,date2)
date1 > date2 结果将是 < 0
date1 < date2 结果将是 > 0

10-07 20:26