Datetime 检索时间范围查询(FetchXML/QueryExpression)

Datetime 检索时间范围查询(FetchXML/QueryExpression),datetime,dynamics-crm-2011,fetchxml,Datetime,Dynamics Crm 2011,Fetchxml,(抱歉英语不好) 我有一个应用程序,它使用MS-CRM 2011 Web服务检索CRM实体上的最后更改。此应用程序将上次数据更改与Windows Mobile设备同步。 同步操作每隔20分钟定期进行一次。在每次同步操作中,我希望通过检查entities“modifiedon”字段来检索上次更新中发生的更改。 问题是,CRM查询不使用DateTime对象的时间段,并且从传递的DateTime参数开始的所有更改都已返回 我会检查FetchXML和QueryExpression,两者没有区别。 是否有

(抱歉英语不好) 我有一个应用程序,它使用MS-CRM 2011 Web服务检索CRM实体上的最后更改。此应用程序将上次数据更改与Windows Mobile设备同步。 同步操作每隔20分钟定期进行一次。在每次同步操作中,我希望通过检查entities“modifiedon”字段来检索上次更新中发生的更改。 问题是,CRM查询不使用DateTime对象的时间段,并且从传递的DateTime参数开始的所有更改都已返回

我会检查FetchXML和QueryExpression,两者没有区别。 是否有任何方法可以为在Crm WebService上运行并返回指定日期和时间的修改记录创建查询

示例(我的FetchXml):



请参见代码中的内容,我希望从2012/11/12 23:00开始修改所有实体,但crm将返回从2012/11/12 00:00开始修改的所有记录。

您的代码正在查找23:59当天或之后更改的记录。。。您记录的结果听起来是正确的


在任何情况下,都会使用时间部分,但我怀疑您看到的是用户时间与世界时间的对比结果。如果用户的时区偏移!=0则用户在UI中选择的午夜将与存储在数据库中的UST等效值不同。

我现在与最旧的Dynamics CRM 2011组织有相同的问题。on或after比较不比较时间,只比较日期。尝试使用grater或EQUALE(fetchxml中的“ge”)。

我们已向实体添加了一个新字段(称为ModifiedOnTick),并在该字段中记录以毫秒为单位的时间差以及固定日期(2011-01-01)。

谢谢您的回复。”“23:59”是一个示例,用于显示CRM不使用时间,并且在此时间(在选定日期)之前更改的所有记录都将返回。我需要一个查询(或高级查找),可以在一天内两次修改实体。(在上一个示例中,2012/11/12 00:00到2012/11/12 23:58之间更改的实体不应在结果集中)可能是我必须创建自定义工作流并为我的实体创建一个新字段(如ModifiedOnTicks),当实体“modifiedon”字段更改时,工作流运行并计算其值刻度并存储在该字段上,但这似乎会变成一个循环。你说的时间被忽略是对的()。关于维护勾号-如果您将其放入预创建和预更新插件中,您可以将该值作为事务的一部分注入,从而不会导致后续更新,希望这是有意义的。。。!假设您在自定义代码中,另一个选项是在CRM返回忽略时间的结果后,在.Net中再次筛选结果?是。也许在.Net中过滤结果更好,我可以按ModifiedOn字段对结果进行排序,并将实体逐个添加到我的集合中,直到下一个实体ModifiedOn从请求的时间经过,谢谢。我们向实体添加了一个新字段(称为ModifiedOnTick),并在该字段中记录固定日期(2011-01-01)的时间差(毫秒)。
<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='new_brand'>
<attribute name='new_brandname' />
<attribute name='new_pdanumber' />
<filter type='and'>
<condition attribute='modifiedon' operator='on-or-after' value='2012/11/12 23:59'/>
</filter>
</entity>
</fetch>