ef 查询mysql 时间_EF Core For MySql查询中使用DateTime.Now作为查询条件的一个小问题…

EF Core For MySql查询中使用DateTime.Now作为查询条件的一个小问题

发布时间:2019-11-26 07:28,

浏览次数:219

, 标签:

Core

For

MySql

DateTime

Now

最近一直忙于手上澳洲线上项目的整体迁移和升级的准备工作,导致博客和公众号停更。本周终于艰难的完成了任务,借此机会,总结一下项目中遇到的一些问题。

EF Core一直是我们团队中中小型项目常用的ORM框架,在使用SQL

Server作为持久化仓储的场景一下,一直表现还中规中矩。但是在本次项目中,项目使用了MySql作为持久化仓储。为了与EF Core集成,团队使用了

Pomelo.EntityFrameworkCore.MySql作为EF Core For MySql的扩展。在开发过程中,团队遇到了各种各样在SQL

Server场景下没有遇到过的问题,其中最奇怪的,也是隐藏最深的问题,就是将DateTime.Now作为查询条件,产生了非预期的结果。

问题场景

本周在项目升级的过程中,客户反馈了一个问题。

在当前系统的Dashboard页面,有一个消息提醒功能,客户可以自定义一些消息,并且指定提醒的日期。客户遇到的问题是通常添加的消息提醒,在指定日期的上午时间段是不会显示,只有在下午时间段才能看到,比如说客户指定2019年10月26号看到一个的消息提醒,但是在10月26日这天早上8:00-12:00这个时间段,系统总是看不到提醒,只有到了下午的时间段才能看到提醒。

PS:这里客户表达的只是个笼统的问题,但问题确实是上午的大部分时间是看不到消息提醒的,但并不是精确到中午12:00点这个时间,

所以此处不必过于纠结于具体的时间。

查看问题代码

看到这个问题的时候,我自己也很奇怪,难道代码或者数据库使用了时区,导致查询出现了偏差?

于是我就Review了一下此处的查询, 代码如下。

var query = DbContext.CRM_Note_Reminders .Include(x => x.CRM_Note) .Where(x =>

!x.CRM_Note.Is_Deleted && !x.Is_Deleted && x.Reminder_Date.Date

Original: https://www.cnblogs.com/wl-blog/p/16533553.html
Author: dreamw
Title: ef 查询mysql 时间_EF Core For MySql查询中使用DateTime.Now作为查询条件的一个小问题…

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/8222/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部