# Date 指令碼與圖表函數

Date() 將運算式的格式設定為日期，使用在資料載入指令碼或作業系統或格式字串 (如果提供的話) 的系統變數中設定的格式。

語法：

Date(number[, format])

傳回的資料類型： 雙值

引數

| 引數 | 描述 |
| --- | --- |
| number | 要格式設定的數字。 |
| format | 描述所產生字串格式的字串。如果未提供任何格式字串，將會使用資料載入指令碼的系統變數或作業系統中設定的日期格式。<br><br>`Date` 函數支援多種不同日期結構的格式選項，例如：<br><br>​`DD/MM/YYYY`: ​日/月/年 (例如 15/02/2022)<br><br>​`MM-DD-YYYY`：含連字號的月-日-年 (例如 02-15-2022)<br><br>​`YYYY-MM-DD`：年-月-日，ISO 格式 (例如 2022-02-15)<br><br>​`D-MMM-YYYY`：日期、月份簡稱、年份，含連字號 (例如 15-Feb-2022)<br><br>`​MMMM YYYY`：月份全名和年份 (例如 February 2022)<br><br>​`MM/YYYY`：月份和年份 (例如 02/2022)<br><br>`DD MMMM YYYY`：日期、月份全名和年份 (例如 15 February 2022) |

範例：圖表運算式

| 範例 | 結果 |
| --- | --- |
| `Date( 35648 )` | 若 `DateFormat` 設定為 `YY-MM-DD`，會傳回 `97-08-06`。 |
| `Date( 35648, 'YY.MM.DD' )` | 若 `DateFormat` 設定為 `YY-MM-DD`，會傳回 `97.08.06`。 |
| `Date( '8/6/97', 'YY.MM.DD' )` | 若 `DateFormat` 設定為 `YY-MM-DD`，會傳回 `NULL`。 |

## 範例 - Date 基礎事項

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FormattingFunctions/Date.htm)

#### 圖表運算式

概述

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

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `RowNo`
  * `InputDate`

* `DateFormat` 變數，使用 `YY-MM-DD` 格式。

載入指令碼

```
SET DateFormat='YY-MM-DD';
Example:
Load * inline [
RowNo, InputDate
1, 35648
2, 35648.375
3, 8/6/97
];
```

結果

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

* ` RowNo
                                       `

* `InputDate`

建立下列量值：

* `=Date(InputDate)`，用來檢視值，作為使用 `DateFormat` 變數設定格式化的日期。

* `=Date(InputDate, 'DD.MM.YYYY')`，用來檢視值，作為使用函數中提供的格式來格式化的日期。

* `=Date(InputDate, 'YY.MM.DD')`，用來檢視值，作為使用函數中提供的格式來格式化的日期。

* `=Num(InputDate)`，用來傳回日期的數值。

Results table

| RowNo | InputDate | Date(InputDate) | Date(InputDate, 'DD.MM.YYYY') | Date(InputDate, 'YY.MM.DD') | Num(InputDate) |
| --- | --- | --- | --- | --- | --- |
| 1 | 35648 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648 |
| 2 | 35648.375 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648.375 |
| 3 | 8/6/97 | - | - | - | - |

結果顯示如何使用 `Date` 函數來顯示和格式化日期。在此範例中，載入指令碼中的 `DateFormat` 設定為 `YY-MM-DD`。系統期望日期運算式使用此格式。您可以看到第 3 列 (`8/6/97`) 中 `InputDate` 的值不符合此格式，因此系統無法將其辨識為日期並傳回 `NULL`。

將載入指令碼中的 `DateFormat` 設定變更為 `SET DateFormat='M/D/YY';` 並載入資料。第 3 列的值現在將與預期的格式相符。系統將其辨識為有效日期並進行相應的格式化。下表顯示了採用新 `DateFormat` 設定的結果。

Results table with variable statement `Set DateFormat='M/D/YY'`Set DateFormat='M/D/YY'

| RowNo | InputDate | Date(InputDate) | Date(InputDate, 'DD.MM.YYYY') | Date(InputDate, 'YY.MM.DD') | Num(InputDate) |
| --- | --- | --- | --- | --- | --- |
| 1 | 35648 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648 |
| 2 | 35648.375 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648.375 |
| 3 | 35648 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648.375 |

## 範例 - Date 使用情境

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FormattingFunctions/Date.htm)

#### 圖表運算式

概述

資料集包含使用日期格式 `MM-DD-YYYY` 的銷售資料。您想使用日期格式 `DD/MM/YYYY`。

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

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `Customer`
  * `SalesDate`
  * `Amount`

* `DateFormat` 變數，使用 `MM/DD/YYYY` 格式。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
Example:
Load * inline [
Customer, SalesDate, Amount
Customer A, 2/15/2024, 100008
Customer B, 9/30/2024, 12500
Customer C, 12/28/2024, 15000
];
```

結果

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

* ` Customer
                                       `

建立下列量值：

* `=Date(SalesDate ,'DD/MM/YYYY')`，用來檢視值，作為使用函數中提供的格式來格式化的日期。

* `=Sum(Amount)`，用來計算銷售成本總值。

Results table

| Customer | Date(SalesDate ,'DD/MM/YYYY') | Sum(Amount) |
| --- | --- | --- |
| Customer A | 15/02/2024 | 100008 |
| Customer B | 30/09/2024 | 12500 |
| Customer C | 28/12/2024 | 15000 |

查看結果，您可以看到雖然資料集中的日期使用一種格式，但 `Date` 函數允許您以不同的格式呈現這些日期。