Dynamics crm CRM 2011流程执行时间混乱

Dynamics crm CRM 2011流程执行时间混乱,dynamics-crm,dynamics-crm-2011,crm,Dynamics Crm,Dynamics Crm 2011,Crm,我正在尝试编写一个工作流,该工作流将检查我的一个实体上日期时间字段的条件。我想确定这个日期时间是否正好是14天前。例如,如果今天的日期是2012年7月16日,我想查找日期时间为2012年7月2日的所有记录 我已经尝试过处理流程执行时间,但我一直得到奇怪的结果。当我尝试使用“流程执行时间前14天的日期时间”时,我在7月2日的所有记录上都得到了0个结果。当我尝试在进程执行时间前13或15天使用时,我总是得到0个结果 然后,我尝试将“日期时间在流程执行时间前15天或之后”与“日期时间在流程执行时间前1

我正在尝试编写一个工作流,该工作流将检查我的一个实体上日期时间字段的条件。我想确定这个日期时间是否正好是14天前。例如,如果今天的日期是2012年7月16日,我想查找日期时间为2012年7月2日的所有记录

我已经尝试过处理流程执行时间,但我一直得到奇怪的结果。当我尝试使用“流程执行时间前14天的日期时间”时,我在7月2日的所有记录上都得到了0个结果。当我尝试在进程执行时间前13或15天使用时,我总是得到0个结果

然后,我尝试将“日期时间在流程执行时间前15天或之后”与“日期时间在流程执行时间前13天或之前”结合起来,得到了两条记录:一条记录是7月2日,另一条记录是7月3日

然后,我将上述内容更改为“流程执行时间前15天或之后的日期时间”和“流程执行时间前14天或之前的日期时间”,并获得0条记录

我真的被这些结果弄糊涂了。工作流是否考虑了这些记录的日期和时间?例如,如果流程执行时间为2012年7月16日下午1:13,那么“14天当天或之后”是否考虑了下午1:13部分?2012年2月7日下午12:00不在搜索范围内,而2012年2月7日下午2点在搜索范围内吗

更新: 经过一些调查,我发现数据库以UTC存储时间戳,而UI将它们转换为PST(对于我们的时区)。然后我发现“On”比较使用的是UTC值。这对我来说毫无意义。例如,我在数据库中有两条记录,如下所示:

日期名称

2012-06-30 06:18:29.000鲍勃

2012-06-30 07:00:00.000亨利

但在动力学中,它们在高级查找中显示为:

2012年6月29日北京银行

2012年6月30日亨利


每当我尝试使用“开”比较时,我似乎总是得到两个记录。当我将日期以1天为增量上移或下移时,我将得到0条记录。我唯一的结论是,On/On或After使用UTC数据库日期,而UI将它们表示为转换后的PST日期。

在这种情况下,有两件事需要注意

首先,执行时间确实包括时间部分,on或before条件也将考虑时间部分

其次,您需要确保您的e正确处理UTC时间。从用户界面上看,一个实体的时间看起来像是7月2日,但由于UTC偏移,它可能是不同的日期。因此,当您试图确保查询表达式正常运行时,请确保您知道记录中实际的UTC时间

你的结论是正确的。UI将始终显示用户时区中的日期和时间,但数据库将所有时间存储为UTC。请参阅答案,了解如何转换UTC时间(假设您正在将C#部分运行到您的工作流中)