# DateFormat

此環境變數定義作為應用程式中預設值使用的日期格式，並按照傳回 `date()` 和 `date#()` 等函數的日期。格式用來解譯和格式化日期。若未定義變數，將會在指令碼執行時擷取區域設定所設定的日期格式。

語法：

DateFormat

DateFormat 函數範例

| 範例 | 結果 |
| --- | --- |
| `Set DateFormat='M/D/YY'; //(US format)` | 這樣的 `DateFormat` 函數使用方式將日期定義為 US 格式，即月/日/年。 |
| `Set DateFormat='DD/MM/YY'; //(UK date format)` | 這樣的 `DateFormat` 函數使用方式將日期定義為 UK 格式，即日/月/年。 |
| `Set DateFormat='YYYY/MM/DD'; //(ISO date format)` | 這樣的 `DateFormat` 函數使用方式將日期定義為 ISO 格式，即年/月/日。 |

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：MM/DD/YYYY。日期格式是在資料載入指令碼的 `SET DateFormat` 陳述式中指定。由於地區設定和其他因素，您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式，以滿足您的需求。或者，您可以在載入指令碼中變更格式，以符合這些範例。如需詳細資訊，請參閱 [修改用於應用程式和指令碼的區域設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)。

應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud 使用者介面中顯示的語言無關。Qlik Cloud 顯示的語言將與您正在使用的瀏覽器相同。

若您是應用程式建立者，可以為您建立的應用程式設定預設地區。如需詳細資訊，請參閱[Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)。

## 範例 1 – 系統變數預設

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DateFormat.htm)

#### 載入指令碼和結果

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 日期資料集。

* `DateFormat` 函數，這將會使用美國日期格式。

在此範例中，資料集會載入到名為「`Transactions`」的表格中。這包括 `date` 欄位。使用 US `DateFormat` 定義。此模式將在載入文字日期時用於隱含文字到日期轉換。

載入指令碼

```

Set DateFormat='MM/DD/YYYY'; 

Transactions: 
LOAD 
date, 
month(date) as month, 
id, 
amount 
INLINE  
[ 
date,id,amount 
01/01/2022,1,1000 
02/01/2022,2,2123 
03/01/2022,3,4124 
04/01/2022,4,2431 
]; 						
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `date`
* `month`

建立此量值：

`=sum(amount)`

結果表格

| 日期 | 月 | =sum(amount) |
| --- | --- | --- |
| 01/01/2022 | 一月 | 1000 |
| 02/01/2022 | 二月 | 2123 |
| 03/01/2022 | 三月 | 4124 |
| 04/01/2022 | 四月 | 2431 |

`DateFormat` 定義 MM/DD/YYYY 用於隱含的文字到日期轉換，因此 `date` 欄位可正確解譯為日期。相同格式用來顯示日期，如結果表格中所示。

## 範例 2 – 變更系統變數

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DateFormat.htm)

#### 載入指令碼和結果

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 來自先前範例的相同資料集。

* `DateFormat` 函數，這將會使用「DD/MM/YYYY」格式。

載入指令碼

```

SET DateFormat='DD/MM/YYYY'; 
Transactions: 
LOAD 
date, 
month(date) as month, 
id, 
amount 
INLINE  
[ 
date,id,amount 
01/01/2022,1,1000 
02/01/2022,2,2123 
03/01/2022,3,4124 
04/01/2022,4,2431 
]; 					
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `date`
* `month`

建立此量值：

`=sum(amount)`

結果表格

| 日期 | 月 | =sum(amount) |
| --- | --- | --- |
| 01/01/2022 | 一月 | 1000 |
| 02/01/2022 | 一月 | 2123 |
| 03/01/2022 | 一月 | 4124 |
| 04/01/2022 | 一月 | 2431 |

因為 `DateFormat` 定義已設定為「DD/MM/YYYY’」，您可以看見第一個「/」符號之後的兩位數字已解譯為月份，產生來自一月的所有記錄。

## 範例 3 – 日期解譯

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DateFormat.htm)

#### 載入指令碼和結果

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 資料集中的日期為數字格式。

* `DateFormat` 變數，這將會使用「DD/MM/YYYY」格式。

* `date()` 變數。

載入指令碼

```

SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
Load 
date(numerical_date), 
month(date(numerical_date)) as month, 
id, 
amount 
Inline  
[ 
numerical_date,id,amount 
43254,1,1000 
43255,2,2123 
43256,3,4124 
43258,4,2431 
]; 						
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `date`
* `month`

建立此量值：

`=sum(amount)`

結果表格

| 日期 | 月 | =sum(amount) |
| --- | --- | --- |
| 06/03/2022 | 六月 | 1000 |
| 06/04/2022 | 六月 | 2123 |
| 06/05/2022 | 六月 | 4124 |
| 06/07/2022 | 六月 | 2431 |

在載入指令碼中，您使用 `date()` 函數將數值日期轉換為日期格式。因為您沒有提供指定格式作為函數中的第二引數，所以會使用 `DateFormat`。這產生使用格式「MM/DD/YYYY」的日期欄位。

## 範例 4 – 外國日期格式

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DateFormat.htm)

#### 載入指令碼和結果

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 日期資料集。

* `DateFormat` 變數使用「DD/MM/YYYY」格式但以正斜線取消註解。

載入指令碼

```
// SET DateFormat='DD/MM/YYYY'; 

 
Transactions: 
Load 
date, 
month(date) as month, 
id, 
amount 
Inline  
[ 
date,id,amount 
22-05-2022,1,1000 
23-05-2022,2,2123 
24-05-2022,3,4124 
25-05-2022,4,2431 
]; 
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `date`
* `month`

建立此量值：

`=sum(amount)`

結果表格

| 日期 | 月 | =sum(amount) |
| --- | --- | --- |
| 22-05-2022 | - | 1000 |
| 23-05-2022 | - | 2123 |
| 24-05-2022 | - | 4124 |
| 25-05-2022 | - | 2431 |

在初始載入指令碼中，正在使用的 `DateFormat` 是預設「MM/DD/YYYY」。因為交易資料集中的 `date` 欄位不屬於此格式，所以欄位不會解譯為日期。這顯示在結果表格中，其中 `month` 欄位值為 Null。

您可以檢查 `date` 欄位的「標記」屬性，以在資料模型檢視器中驗證解譯的資料類型。

`Transactions` 表格的預覽。對指示文字輸入資料未隱含轉換至日期/時間戳記的 `date` 欄位記下「標記」。

`Transactions` 表格的預覽。對指示文字輸入資料未隱含轉換至日期/時間戳記的 `date` 欄位記下「標記」。

`Transactions`Transactions 表格的預覽。對指示文字輸入資料未隱含轉換至日期/時間戳記的 `date`date 欄位記下「標記」。 ![「交易」表格的預覽，含醒目提示之「日期」欄位的詳細資訊。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_dmv_TransactionsTablePreview1.png)

這可以透過啟用 `DateFormat` 系統變數來解決：

`// SET DateFormat='DD/MM/YYYY'`；

移除雙正斜線並載入資料。

`Transactions` 表格的預覽。對指示文字輸入資料已隱含轉換至日期/時間戳記的 `date` 欄位記下「標記」。

`Transactions` 表格的預覽。對指示文字輸入資料已隱含轉換至日期/時間戳記的 `date` 欄位記下「標記」。

`Transactions`Transactions 表格的預覽。對指示文字輸入資料已隱含轉換至日期/時間戳記的 `date`date 欄位記下「標記」。 ![修改 DateFormat 系統變數後「交易」表格的預覽。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_dmv_TransactionsTablePreview2.png)