我正在尝试编写一个工作流来检查我的一个实体上的日期时间字段的条件。我想确定这个日期时间是否正好是 14 天前。例如,如果今天的日期是 2012 年 7 月 16 日,我想查找日期时间为 2012 年 7 月 2 日的所有记录。
我尝试过使用 Process Execution Time,但我一直得到奇怪的结果。当我尝试使用“流程执行时间前 14 天的日期时间”时,我在 7 月 2 日的所有记录中得到了 0 个结果。当我尝试在流程执行时间前 13 或 15 天使用时,我一直得到 0 个结果。
然后,我尝试将“日期时间在流程执行时间之前 15 天或之后”与“日期时间在流程执行时间之前 13 天或之前”结合起来,我得到了 2 条记录:1 条用于 7 月 2 日,另一条用于 7 月 3 日。
然后,我将上述内容更改为“日期时间在流程执行时间之前 15 天或之后”,“日期时间在流程执行时间之前 14 天或之前”,我得到了 0 条记录。
我真的对这些结果感到困惑。工作流程是否考虑到这些记录的日期和时间?例如,如果流程执行时间是 2012 年 7 月 16 日下午 1:13,“在 14 天或之后”是否考虑了下午 1:13 部分?2012 年 7 月 2 日下午 12:00 是否会在搜索条件之外,而 2012 年 7 月 2 日下午 2 点会在搜索条件之内吗?
更新:经过一番调查,我发现数据库以 UTC 存储时间戳,而 UI 将它们转换为 PST(对于我们的时区)。然后我发现“打开”比较使用的是 UTC 值。这对我来说毫无意义。例如,我在数据库中有 2 条记录,如下所示:
日期名称
2012-06-30 06:18:29.000 鲍勃
2012-06-30 07:00:00.000 亨利
但在 Dynamics 中,它们在 Advanced Find 中显示为:
2012 年 6 月 29 日鲍勃
2012 年 6 月 30 日亨利
每当我尝试使用“开”比较时,我似乎总是得到两条记录。当我将日期向上或向下移动 1 天时,我会得到 0 条记录。我唯一的结论是 On/On 或 After 使用的是 UTC 数据库日期,而 UI 将它们显示为转换后的 PST 日期。