エンティティの 1 つで日時フィールドの条件をチェックするワークフローを作成しようとしています。この日時がちょうど 14 日前かどうかを判断したいと思います。たとえば、今日の日付が 2012 年 7 月 16 日の場合、日時が 2012 年 7 月 2 日のすべてのレコードを検索します。
プロセスの実行時間をいじってみましたが、奇妙な結果が得られ続けます。「プロセス実行時刻の 14 日前の日付時刻」を使用しようとすると、7 月 2 日のすべてのレコードで結果が 0 になりました。プロセス実行時間の 13 日前または 15 日前を使用しようとすると、0 の結果が得られ続けました。
次に、「プロセス実行時刻の 15 日前以降の日付時刻」と「プロセス実行時刻の 13 日前以降の日付時刻」を組み合わせてみました。
次に、前述を「プロセス実行時刻の 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 ヘンリー
ただし、ダイナミクスでは、高度な検索で次のように表示されます。
2012/6/29 ボブ
2012/6/30 ヘンリー
「オン」比較を使用しようとすると、常に両方のレコードを取得するように見えました。日付を 1 日単位で上下に移動すると、0 レコードが取得されます。私の唯一の結論は、On/On または After は UTC データベースの日付を使用しているのに対し、UI はそれらを変換された PST 日付として表示しているということです。