# 日期處理器

執行日期相關操作。

您可利用日期處理器，將各種函數套用至與日期、時間和時間戳記相關的欄位。提供的函數可用於計算、清理、修改或轉換日期。

## 使用

日期處理器需要一個輸入流程，並且只能產生一個輸出流程。

## 屬性

要進行設定以用於日期的屬性。

資訊備註此區段列出的屬性是此處理器大部分函數的預設屬性。可能需要根據您選取的函數定義其他屬性。

設定

| 屬性 | 設定 |
| --- | --- |
| 函數名稱 | <ul> <li> <p><span>Convert to timestamp</span>：使用可以從清單中選擇或手動指定的格式將字串解譯為時間戳記。如果您選擇 <span>Auto</span> 作為輸入格式，函數將嘗試從一組最常見的字串中偵測格式。如果它無法被解譯為時間戳記，則將被設定為 <span>Null</span>。</p> </li> <li> <p><span>Convert to date</span>：使用可以從清單中選擇或手動指定的格式將字串解譯為日期。如果您選擇 <span>Auto</span> 作為輸入格式，函數將嘗試從一組最常見的字串中偵測格式。如果它無法被解譯為日期，則將被設定為 <span>Null</span>。</p> </li> <li> <p><span>Convert to time</span>：使用可以從清單中選擇或手動指定的格式將字串解譯為時間。如果您選擇 <span>Auto</span> 作為輸入格式，函數將嘗試從一組最常見的字串中偵測格式。如果它無法被解譯為時間，則將被設定為 <span>Null</span>。</p> </li> <li> <p><span>Create timestamp from parts</span>：透過串連其他欄位中的數字部分或常數值來建立新的時間戳記欄位。</p> </li> <li> <p><span>Create date from parts</span>：透過串連其他欄位中的數字部分或常數值來建立新的日期欄位。</p> </li> <li> <p><span>Create time from parts</span>：透過串連其他欄位中的數字部分或常數值來建立新的時間欄位。</p> </li> <li> <p><span>Format date</span>：變更日期欄位中使用的日期格式。</p> </li> <li> <p><span>Calculate date difference</span>：對於給定的時間部分單位，計算欄位中的日期與所選日期之間的時間段。計算的方法是先將日期截斷為指定的日期或時間部分，然後以整數形式傳回兩個時間部分之間的差距。</p> </li> <li> <p><span>Add duration</span>：向日期新增特定的時間量。</p> </li> <li> <p><span>Compare dates</span>：將此欄位與另一個欄位或常數進行比較</p> </li> <li> <p><span>Extract date parts</span>：建立包含年、月、季、日、小時、分鐘、秒等的欄位。</p> </li> <li> <p><span>Truncate date</span>：移除日期的一部分。</p> </li> </ul> |
| 要處理的欄位 | 選取一個或多個您要套用清單中函數的欄位。 |
| 建立新欄位 | 啟用此選項，以在套用函數之後建立新欄位。若您沒有啟用此選項，將會保留並修改現有的欄位。 |
| 重新命名新欄位 | 向新建立的欄位提供自訂名稱。 |

若要重新命名處理器或編輯其描述，請將滑鼠移動到名稱或描述上方，以在屬性面板中變更，並按一下 the 編輯 icon 圖示。

## 有關如何使用日期的其他資訊

有三種通常稱為日期的不同日期相關格式：

* 時間，標示一天中的某個時間

* 日期，標示特定的一天

* 時間戳記，由日期和時間組成

在大多數情況下，資料流程中會自動識別日期。但是，在以下情況下，您應該使用一個 Convert to 函數將日期正確引入系統：

* 無法自動辨識日期的格式。

* 您希望根據建立資料流程之使用者的當地語系化，以與資料流程相同的日期格式輸入日期。

* 想要確保將日期設定為特定格式。否則，無法辨識的日期格式將設定為 Null。

## 限制

* 在某些情況下，由於引擎限制，日期格式將無法運作。這適用於 Format 函數和 Convert to 函數。僅當更新原始輸入欄位時才會發生這種情況，而建立新欄位時不會發生這種情況。

* 由於引擎限制，當從原生支援日期的格式 (例如 Excel) 載入日期時，並非總是可以設定該日期的格式。

## 預先定義的日期格式

此表格列出了資料流程中預先定義的不同格式，但手動輸入時也支援其他格式。有關手動定義格式的更多資訊，請參閱[數字和時間格式的說明](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/conventions-number-time-formats.htm#anchor-3)。

| 格式 | 類型 | 範例 |
| --- | --- | --- |
| YYYY-MM-DD | 日期 | 1999-03-22 |
| YYYYMMDD | 日期 | 19990322 |
| M/D/YYYY | 日期 | 3/22/1999 |
| M/D/YY | 日期 | 3/22/99 |
| MM/DD/YY | 日期 | 03/22/99 |
| MMM D, YYYY | 日期 | Mar 22, 1999 |
| MMMM D, YYYY | 日期 | March 22, 1999 |
| YYYY-MM-DD hh:mm | 時間戳記 | 1999-03-22 05:06 |
| YYYY-MM-DD hh:mm:ss | 時間戳記 | 1999-03-22 05:06:07 |
| YYYY-MM-DDThh:mm | 時間戳記 | 1999-03-22T05:06 |
| YYYY-MM-DDThh:mm:ss | 時間戳記 | 1999-03-22T05:06:07 |
| M/D/YYYY hh:mm tt | 時間戳記 | 3/22/1999 05:06 AM |
| M/D/YY hh:mm tt | 時間戳記 | 3/22/99 05:06 AM |
| MM/DD/YY hh:mm tt | 時間戳記 | 03/22/99 05:06 AM |
| M/D/YYYY hh:mm:ss tt | 時間戳記 | 3/22/1999 05:06:07 AM |
| M/D/YY hh:mm:ss tt | 時間戳記 | 3/22/99 05:06:07 AM |
| MM/DD/YY HH:mm:ss tt | 時間戳記 | 03/22/99 05:06:07 AM |
| MMM D, YYYY h:mm:ss tt | 時間戳記 | Mar 22, 1999 5:06:07 AM |
| WWWW, MMMM D, YYYY h:mm:ss tt | 時間戳記 | Monday, March 22, 1999 5:06:07 AM |
| hh:mm | 時間 | 05:06 |
| hh:mm:ss | 時間 | 05:06:07 |
| hh:mm tt | 時間 | 05:06 AM |
| hh:mm:ss tt | 時間 | 05:06:07 AM |

## 範例：轉換和使用日期

此場景展示如何準備包含潛在客戶資訊的資料集，以訓練機器學習實驗，以識別哪些潛在客戶可能成為客戶。在提供的資訊中，有幾個包含日期的欄位，例如 FirstContactDate 和 TrialDate。

![包含潛在客戶資訊的資料集，其中包含日期](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/dates_convert_example_1.png)

第一步是確保兩個日期欄位使用常見格式。使用第一個日期處理器，對 FirstContactDate 和 TrialDate 欄位使用 Convert to date 函數。這兩個欄位現在使用相同的 D/MM/YYYY 格式。

利用第二個日期處理器，使用 Calculate date difference 來顯示第一次聯絡的日期和開始試用的日期之間的天數。

之後，使用分支處理器根據結果資料產生第一個輸出，而第二個分支將使用第三個日期處理器。透過 Extract date parts 函數，您可以僅保留 FirstContactDate 欄位的年份和月份資訊，以便在將來的機器學習實驗中更輕鬆地讀取和使用。

彙總操作後，可以執行資料流程來訓練您的模型，最終的資料流程如下所示：

![具有正確日期格式的資料流程](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/dates_convert_example_2.png)

## 範例：計算日期差

本範例中用作來源的資料包含訂單參考，包括訂單日期和出貨日期。

![包含訂單和出貨日期的資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/dates_example_1.png)

若要深入瞭解出貨訂單無法避免的延遲，您可以使用日期處理器來計算下訂單和訂單出貨之間的時間段。

在處理器屬性中，選擇 Calculate date difference 作為函數，選擇 Day 作為時間單位。選擇 Order Date 作為要處理的欄位，並選擇 Ship Date 作為要計算時間差的另一欄位。輸入要建立之新欄位的名稱、設定目標並執行資料流程。

![用於計算時差的日期處理器](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/dates_example_2.png)

此資料流程的目標將包括一個新欄，其中包含您可以在分析中使用的訂單出貨所需的天數。

## 影片摘要

[檢視影片剪輯](https://play.vidyard.com/K6R24fJuZAvLCrnNPmRrkW)