2012-07-16 82 views
1

我想寫一個工作流程,將檢查我的一個實體上的日期時間字段的條件。我想確定這個日期時間是否恰好在14天前。例如,如果今天的日期是2012年7月16日,我想查找所有記錄的日期時間爲2012年7月2日。客戶關係管理2011年流程執行時間混亂

我試着玩弄Process Execution Time,但是我不斷得到奇怪的結果。當我嘗試使用「過程執行時間前14天的日期時間」時,我在7月2日的所有記錄中都得到了0個結果。當我試圖在流程執行時間之前使用13或15天時,我一直得到0結果。

我再合併審理「日期時間或之後 15天流程執行時間之前」與「日期時間或之前 13天流程執行時間之前」和我有2個記錄:1月2和另一個7月3日。

然後,我將上述更改爲「過程執行時間前15天或之後的日期時間」與「過程執行時間前14天或之前的日期時間」,我得到0記錄。

我真的很困惑這些結果。工作流程是否考慮了這些記錄的日期時間?例如,如果流程執行時間爲2012年7月16日下午1:13,「14天或14天后」是否考慮到1:13 pm部分? 2012年7月2日中午12:00將在搜索標準之外,而2012年7月2日下午2點將在裏面?

更新: 經過一番調查後,我發現數據庫存儲UTC時間戳,而用戶界面將它們轉換爲PST(用於我們的時區)。然後我發現「On」比較正在使用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日期。

回答

2

在這種情況下,有2件事情,但你需要知道。

首先,執行時間確實包括時間部分,並且在之前或之前的標準條件也將考慮時間部分。其次,您需要確保您的e時間正確處理UTC時間。僅僅因爲實體的時間看起來像是在7月2日從用戶界面,由於UTC抵消它可能是一個不同的日期。因此,當您試圖確保您的查詢表達式正確運行時,請確保您知道記錄上實際存在的UTC時間。

你的結論是正確的。UI將始終在用戶的時區中顯示日期和時間,但數據庫將所有時間存儲爲UTC。請參閱this答案以瞭解如何將您的時間轉換爲UTC(假設您正在將C#部分運行到您的工作流程)

相關問題