为什么DiffDay返回0结果

时间:2015-03-04 10:52:54

标签: c# sql-server linq

我完全陷入困境。如果公司ID超过2天,我正在尝试查询结果。

我嘲笑使用一个对象来模拟数据库将会是什么以及所有工作 - 我现在正在使用数据库

我的数据库是

Id         DateTime                          CompanyId
1          2015-02-03 10:30:01:000              5  
2          2015-02-03 10:29:01:000              5
3          2015-02-03 10:27:01:000              5
4          2015-02-03 09:26:01:000              5
5          2015-01-01 10:30:01:000              5

请注意,最后一个条目是不同的日期!

以下linq获取最大值和最小值之间的天数,如果差异超过1天,则显示结果。 _visitDetail(下面)是Entity表对象。

var ids = from o in _visitDetail
          group o by o.CompanyId into grouped
          where (EntityFunctions.DiffDays(grouped.Max(s => s.DateTime), grouped.Min(s => s.DateTime))) > 0
          select grouped;

问题是我总是得到0结果,我希望得到一个项目。我不明白为什么或我做错了什么......

1 个答案:

答案 0 :(得分:3)

这一切都隐藏在documentation

  

返回:
  dateValue1和dateValue2之间的天数。

您拥有最大值,然后是最小值,因此您获得了负数天数。将它们交换为圆形或< 0代替> 0