entityframework无法使用datetime.now条件返回数据库中的记录

时间:2016-05-24 06:54:39

标签: c# asp.net-mvc entity-framework

我正在尝试使用此查询从数据库中返回一些记录:

        ViewBag.TrafficEnter = _iTrafficRepository.Get().Where(i => i.Type == "ورود" && i.SubmitDateTime == DateTime.Now).ToList();

enter image description here

在这里您可以看到我的数据库记录:

enter image description here

但问题是查询没有返回任何值。为什么?

2 个答案:

答案 0 :(得分:2)

您将数据库中的$construct_obj = OrganizationalConstruct::where('is_root', 0)->where('organization_id', $this->current_company->company_id)->get(); $construct_obj->lists('construct_name', 'organizational_construct_id'); 值与返回当前时间(包括毫秒)的DateTime值进行比较,并且永远不能匹配表中的任何值。

修改查询以选择范围

中的值
DateTime.Now

假设今天的日期是2016年5月24日,它将返回您图像中显示的所有17条记录。

答案 1 :(得分:0)

DateTime.Now的问题在于它意味着一个非常小的日期范围,它等于它的精度的最小分度,在这种情况下是1毫秒。除非您创建的记录与DateTime几乎完全相同。现在您永远不会得到匹配。

您有两种解决方案(可能不适合您的需求);

首先,不要匹配确切的dateTime,尝试匹配范围,例如DateTime.Now之前/之后1小时。这样可以让您控制范围。

或者,您可以尝试将日期值(DateTime.Now.Date)与记录日期进行匹配。