Dynamics CRM日期字段查询使用时分秒的方法
本人微信公众号:微软动态CRM专家罗勇 ,回复293或者20190110可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me 。
我们使用高级查找对日期字段进行筛选的时候,你会发现无法写入时分秒,即使你下载下来,强行加上是时分秒,也是无效的,转换成SQL的时候只保留日期部分。
<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='incident'>
<attribute name='title' />
<attribute name='incidentid' />
<filter type='and'>
<condition attribute='createdon' operator='on' value='2019-01-03' />
</filter>
</entity>
</fetch>
上面的FetchXml执行的话(不论通过SOAP终结点还是Web API终结点),转成T-SQL(假设调用用户的时区是东八区),转换后其实是createdon大于等于1月2日16:00:00,且小于1月3日16:00:00 。
那么有没有办法精确到时分秒进行查询呢?
答案是有,且听我道来。
对于使用fetchxml来执行查询,可以将日期字段的筛选符号改成大于、大于或等于、小于、小于或等于,这样就会有效,例如下面的fetchxml,注意日期要转换成文本,使用 yyyy-MM-dd HH:mm:ss 格式。
<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='incident'>
<attribute name='title' />
<attribute name='incidentid' />
<filter type='and'>
<condition attribute='createdon' operator='ge' value='2019-01-02 09:00:00' />
<condition attribute='createdon' operator='lt' value='2019-01-04 08:00:00' />
</filter>
</entity>
</fetch>
上面的FetchXml执行的话(不论通过SOAP终结点还是Web API终结点),转成T-SQL(假设调用用户的时区是东八区),转换后其实是createdon大于等于1月2日01:00:00,且小于1月3日00:00:00 。
如果我用Web API终结点,使用ODATA语法来做,也可以使用大于、大于或等于、小于、小于或等于这样的运算符号,类似如下的查询:
https://demo.luoyong.me/api/data/v8.2/incidents?$select=incidentid&$filter=createdon ge 2019-01-02T09:00:00.000Z
上面的查询执行,转成T-SQL其实是createdon大于等于1月2日09:00:00 。
如果我使用QueryExpression呢?
经过测试也可以对日期时间类型字段使用大于、大于或等于、小于、小于或等于的操作符,不论你传入的时间是带时区的时间还是UTC时间,生成的SQL都会将你传入的时间转换成UTC时间进行比较。
下面是总结时间:
1. 对日期时间类型字段使用大于(gt)、大于或等于(ge)、小于(lt)、小于或等于(le)的操作符,这样可以按照时分秒进行查询
2.SOAP终结点,执行FetchmXml,会认为你传入的时间(文本类型)是执行用户偏好时区的时间,计算时会将你传入的时间转换成UTC 0时区时间进行计算,注意使用FetchXml的日期时间要使用 yyyy-MM-dd HH:mm:ss 这种格式。当然如果你使用QueryExpression时候传入的就是时间,而不是文本,会转换成UTC 0时区时间进行计算。
3.Web API终结点,如果是执行FetchXml,其行为和SOAP终结点一样,会将你传入的时间认为是执行用户所偏好时区的时间,计算时会将你传入的时间转换成UTC 0时区时间进行计算。若是使用ODATA风格的话,则会认为你传入的时间就是UTC 0时区的时间,不执行转换。注意日期时间用这种风格:2019-01-02T09:00:00.000Z
Dynamics CRM日期字段查询使用时分秒的方法的更多相关文章
- Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法(转)
本篇文章,介绍Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法. RetreiveMultiple方法,用于获取实体的多个实例,该方法的签名如下 ...
- Oracle查询日期字段是否包含时分秒 TRUNC() 函数
可以使用 ORACLE TRUNC()函数 来进行判断 表 A 日期字段 datetime 部分数据带时分秒,部分数据没有时分秒 select * from A where datetime = TR ...
- Dynamics CRM 警惕Odata查询的陷阱
Dynamics CRM可以很方便的通过用Odata通过AJAX查询到数据.查询分为两种:精确查找和模糊查找. 精确查找是指通过GUID匹配得到一条数据,如: http://CRMURL/org/XR ...
- Dynamics CRM 查找字段下拉的最多10个选项的排序规则
原文链接来自DTCCh论坛http://dynamics.ms-talent.com.cn/bbs/content/?id=1406&catogory=CRM 如果你是从事dynamics c ...
- MySQL两个日期字段相减得到秒的方法
一.MySQL中两个DateTime字段相减 假定表名为tblName,两个DateTime字段名分别为beginDateTime,endDateTime,以下是相关两个mysql日期字段相减的SQL ...
- Dynamics CRM 构建IN查询
CRM中有3种查询数据的方式,分别是QueryExpression.fetchxml.linq,本篇讲述的条件IN的查询只支持前两种,linq并不支持. QueryExpression的写法如下,示例 ...
- Dynamics CRM 删除字段时检测到有组件类型为查看的依赖组件而无法删除问题
今天在删除一个字段的时候报如下截图错误,点开详细信息会看到是一个快速查找视图,但却在视图列中没有找到我要删的那个字段,然后回过头来又看到组件类型是查看,这是啥类型?有点摸不着头脑了. 最后想到是不是查 ...
- Dynamics CRM 通过OData查询数据URI中包含中文的情况
filter条件如下"?$filter=new_name eq '采购主管' and new_entityname eq 'new_purchaseenquiry' ",如果用这个 ...
- DbFunctions 作为 LINQ to Entities 查询的一部分使用时,此方法调用规范 CreateDateTime EDM 函数以创建新的 DateTime 对象。
DbFunctions.CreateDateTime CreateDateTime(year, month,day,hour,minute,second)
随机推荐
- JS监听对象属性改变
设想这么一个需求: user.name = '张三' 对user数据进行操作的时候,同步的修改页面上的用户名为张三. 这就是个数据绑定的概念. 针对这类需求 ES5提供了Object.definePr ...
- H5 和移动端 WebView 缓存机制解析与实战
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/qHm_dJBhVbv0pJs8Crp77w 作者:叶 ...
- 一个完整的 Web 请求到底发生了什么
阅读本文大概需要 7 分钟. 一.从输入一个网址开始 当我们在浏览器输入一个网址,然后按下回车,接下来浏览器显示了页面.网速好的话这之间可能就一秒,但在这一秒内到底发生了什么? 本文主要内容是试图记录 ...
- HttpSession的API
//获取Session对象request.getSession()request.getSession(boolean create)//获取SessionIdgetId()//获取当前session ...
- 【Scala篇】--Scala初始与基础
一.前述 Scala是基于JVM的另一个语言. Scala官网6个特征. 1).Java和scala可以混编 2).类型推测(自动推测类型) 3).并发和分布式(Actor) 4).特质,特征(类似j ...
- 轮询、长轮询与Web Socket的前端实现
Web Socket 应用场景:实现即时通讯:如股票交易行情分析.聊天室.在线游戏等,替代轮询和长轮询 轮询 轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由 ...
- 初探React与D3的结合-或许是visualization的新突破?
自诞生之初截止目前(2016年初),React可以说是前端界最流行的话题,如果你还不知道React是何物,你就该需要充充电了. d3是由纽约时报工程师开源的一个绘制基于svg的数据可视化工具,是近几年 ...
- 【java设计模式】(3)---代理模式(案例解析)
设计模式之代理模式 一.概述 1.什么是代理模式? 解释第一遍:代理模式主要由三个元素共同构成: 1)一个接口,接口中的方法是要真正去实现的. 2)被代理类,实现上述接口,这是真正去执行接口中方法的类 ...
- IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)
Eclipse用多了,IntelliJ中创建Maven聚合项目可能有小伙伴还不太熟悉,我们今天就来看看. IntelliJ中创建普通的Java聚合项目相对来说比较容易,不会涉及到web操作,涉及到we ...
- [linux]孤儿进程与僵尸进程
转载自:http://www.cnblogs.com/Anker/p/3271773.html 一.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这两 ...