MSCRM OlderThanXHours和当前时间

时间:2017-05-18 03:14:49

标签: dynamics-crm

我创建了一个QueryExpression,其中一个条件设置为(“dev_lastremarketingtime”,ConditionOperator.OlderThanXHours,1); 目的是检索dev_lastremarketingtime值后一小时的多个记录。

表中有符合此标准的记录,但不会返回。当我检查记录(这次检索特定记录的多个)时,似乎用于比较的时间不一致。

例如,在查看相关帐户记录时,帐户表单上显示的dev_lastremarketingtime值为5/17/2017 8:57 PM。内部时间是5/18/2017 12:57:27 AM测试时的挂钟显示5/17/2017 10:38:11 PM(或UTC时间5/18/2017 2:38:11 UTC)。该记录应该由查询返回(当前时间是dev_lastremarketingtime值后一个多小时)

如果我等待几个小时再次运行我的应用程序,则会检索预期的记录。 因此,似乎使用ConditionOperator.OlderThanXHours的Query表达式将当前的Eastern Daylight时间与记录的UTC时间进行比较。

如何让这个查询来比较相同的时区(我觉得哪个不重要?)

(我的个人选项包括东部时间的设置

1 个答案:

答案 0 :(得分:1)

不使用OlderThanXHours运算符,也可以尝试使用“小于”,它提供对DateTime值的控制以进行过滤。

这样你可以使用UTC时间减去一小时,如下所示:

var qe = new QueryExpression("myentity");
qe.Criteria.AddCondition("dev_lastremarketingtime", ConditionOperator.LessThan, DateTime.UtcNow.AddHours(-1));