本人微信公众号:微软动态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日期字段查询使用时分秒的方法的更多相关文章

  1. Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法(转)

    本篇文章,介绍Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法. RetreiveMultiple方法,用于获取实体的多个实例,该方法的签名如下 ...

  2. Oracle查询日期字段是否包含时分秒 TRUNC() 函数

    可以使用 ORACLE TRUNC()函数 来进行判断 表 A 日期字段 datetime 部分数据带时分秒,部分数据没有时分秒 select * from A where datetime = TR ...

  3. Dynamics CRM 警惕Odata查询的陷阱

    Dynamics CRM可以很方便的通过用Odata通过AJAX查询到数据.查询分为两种:精确查找和模糊查找. 精确查找是指通过GUID匹配得到一条数据,如: http://CRMURL/org/XR ...

  4. Dynamics CRM 查找字段下拉的最多10个选项的排序规则

    原文链接来自DTCCh论坛http://dynamics.ms-talent.com.cn/bbs/content/?id=1406&catogory=CRM 如果你是从事dynamics c ...

  5. MySQL两个日期字段相减得到秒的方法

    一.MySQL中两个DateTime字段相减 假定表名为tblName,两个DateTime字段名分别为beginDateTime,endDateTime,以下是相关两个mysql日期字段相减的SQL ...

  6. Dynamics CRM 构建IN查询

    CRM中有3种查询数据的方式,分别是QueryExpression.fetchxml.linq,本篇讲述的条件IN的查询只支持前两种,linq并不支持. QueryExpression的写法如下,示例 ...

  7. Dynamics CRM 删除字段时检测到有组件类型为查看的依赖组件而无法删除问题

    今天在删除一个字段的时候报如下截图错误,点开详细信息会看到是一个快速查找视图,但却在视图列中没有找到我要删的那个字段,然后回过头来又看到组件类型是查看,这是啥类型?有点摸不着头脑了. 最后想到是不是查 ...

  8. Dynamics CRM 通过OData查询数据URI中包含中文的情况

    filter条件如下"?$filter=new_name eq '采购主管' and new_entityname eq 'new_purchaseenquiry' ",如果用这个 ...

  9. DbFunctions 作为 LINQ to Entities 查询的一部分使用时,此方法调用规范 CreateDateTime EDM 函数以创建新的 DateTime 对象。

    DbFunctions.CreateDateTime CreateDateTime(year, month,day,hour,minute,second)

随机推荐

  1. [译文]Domain Driven Design Reference(七)—— 大型战略设计结构

    本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 上周末电脑硬盘文件 ...

  2. [Zephyr] 1、在linux上安装Zephyr-OS并跑DEMO

    星期五, 14. 九月 2018 02:18上午 - BEAUTIFULZZZZ 0) 前言 Zephyr™项目是一个采用Apache 2.0协议许可,Linux基金会托管的协作项目.为所有资源受限设 ...

  3. 解决localdb中文智能的问题

    declare @database nvarchar(100) declare tmpCur cursor for select DB_NAME() open tmpCur fetch next fr ...

  4. Android APK反编译:APKtool使用详解

    导言:在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取. 第一步. ...

  5. 安卓开发学习笔记(二):如何用Android Stuidio在res资源下创建xml视图文件

    笔者在看了相关的教程之后发现教程当中的资源已经过时了.当我们在创建了一个新的空白的工程之后,会发现其文件夹下面的分文件夹目录和官方的教程文件结构完全不同,因此会引起很多误解.笔者使用的是最新版的And ...

  6. Spring AOP实现 Bean字段合法性校验

    使用SpringAop 验证方法参数是否合法   先定义两个注解类ValidateGroup 和 ValidateFiled ValidateGroup .java package com.zf.an ...

  7. input使用小技巧

    ①:如何修改placeholder样式? input::-webkit-input-placeholder { color: #ccc; font-size: 15px; } 注:其它浏览器适配方案 ...

  8. [Swift]LeetCode103. 二叉树的锯齿形层次遍历 | Binary Tree Zigzag Level Order Traversal

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  9. RabbitQM使用笔记

    一:安装  and  卸载 curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.r ...

  10. 第二周 IP通信基础回顾

    这周我们学习了OSI参考模型,了解局域网的分层为接入层,汇聚层,核心层.网络划分为通信直网,资源直网.osi模型概述在主动间数据传输为应用层,表示层,会话层:底层数据l流为传输层,网络层,数据链路层, ...