# day - 指令碼與圖表函數

當 expression 的分數根據標準數字解譯的方式可解譯為日期時，此函數會傳回代表日的整數。

該函數針對特定日期傳回該月的日子。這通常用來衍生日欄位，作為行事曆維度的一部分。

語法：

day(expression)

傳回的資料類型： 整數

函數範例

| 範例 | 結果 |
| --- | --- |
| `day(<br>1971-10-12 )` | 傳回 12 |
| `day(<br>35648 )` | 傳回 6，因為 35648 = 1997-08-06 |

## 範例 1 – DateFormat 資料集 (指令碼)

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

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

概述

開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 名稱為 `Master_Calendar` 的日期資料集。`DateFormat` 系統變數設定為 DD/MM/YYYY。

* 使用 `day()` 函數建立附加欄位 (名稱為 `day_of_month`) 的前置載入。

* 名稱為 `long_date` 的附加欄位，使用 `date()` 函數表示月份全名。

載入指令碼

```

SET DateFormat='DD/MM/YYYY';

Master_Calendar:
Load
        date,
        date(date,'dd-MMMM-YYYY') as long_date,
        day(date) as day_of_month
Inline 
[
date
03/11/2022
03/12/2022
03/13/2022
03/14/2022
03/15/2022
03/16/2022
03/17/2022
03/18/2022
03/19/2022
03/20/2022
03/21/2022						
];
```

結果

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

* `date`

* `long_date`

* `day_of_month`

結果表格

| 日期 | long\_date | day\_of\_month |
| --- | --- | --- |
| 03/11/2022 | 2022 年 3 月 11 日 | 11 |
| 03/12/2022 | 2022 年 3 月 12 日 | 12 |
| 03/13/2022 | 2022 年 3 月 13 日 | 13 |
| 03/14/2022 | 2022 年 3 月 14 日 | 14 |
| 03/15/2022 | 2022 年 3 月 15 日 | 15 |
| 03/16/2022 | 2022 年 3 月 16 日 | 16 |
| 03/17/2022 | 2022 年 3 月 17 日 | 17 |
| 03/18/2022 | 2022 年 3 月 18 日 | 18 |
| 03/19/2022 | 2022 年 3 月 19 日 | 19 |
| 03/20/2022 | 2022 年 3 月 20 日 | 20 |
| 03/21/2022 | 2022 年 3 月 21 日 | 21 |

月份中的日期目前由指令碼中的 `day()` 函數正確評估。

## 範例 2 – ANSI 日期 (指令碼)

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

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

概述

開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 名稱為 `Master_Calendar` 的日期資料集。使用 DateFormat 系統變數 DD/MM/YYYY。不過，資料集中包括的日期屬於 ANSI 標準日期格式。

* 使用 `date()` 函數建立附加欄位 (名稱為 `day_of_month`) 的前置載入。

* 名稱為 `long_date` 的附加欄位，使用 `date()` 函數表示日期與月份全名。

載入指令碼

```

SET DateFormat='DD/MM/YYYY'; 
Master_Calendar: 
Load 
       date, 
       date(date,'dd-MMMM-YYYY') as long_date, 
       day(date) as day_of_month

Inline  
[ 
date 
2022-03-11
2022-03-12
2022-03-13
2022-03-14
2022-03-15
2022-03-16
2022-03-17
2022-03-18
2022-03-19
2022-03-20
2022-03-21
 ]; 
```

結果

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

* `date`

* `long_date`

* `day_of_month`

結果表格

| 日期 | long\_date | day\_of\_month |
| --- | --- | --- |
| 03/11/2022 | 2022 年 3 月 11 日 | 11 |
| 03/12/2022 | 2022 年 3 月 12 日 | 12 |
| 03/13/2022 | 2022 年 3 月 13 日 | 13 |
| 03/14/2022 | 2022 年 3 月 14 日 | 14 |
| 03/15/2022 | 2022 年 3 月 15 日 | 15 |
| 03/16/2022 | 2022 年 3 月 16 日 | 16 |
| 03/17/2022 | 2022 年 3 月 17 日 | 17 |
| 03/18/2022 | 2022 年 3 月 18 日 | 18 |
| 03/19/2022 | 2022 年 3 月 19 日 | 19 |
| 03/20/2022 | 2022 年 3 月 20 日 | 20 |
| 03/21/2022 | 2022 年 3 月 21 日 | 21 |

月份中的日期目前由指令碼中的 `day()` 函數正確評估。

## 範例 3 – 未格式化的日期 (指令碼)

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

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

概述

開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 名稱為 `Master_Calendar` 的日期資料集。使用 `  DateFormat ` 系統變數 DD/MM/YYYY。

* 使用 `day()` 函數建立附加欄位 (名稱為 `day_of_month`) 的前置載入。

* 原始未格式化的日期，名稱為 `unformatted_date`。

* 使用 `date()` 且名稱為 `long_date` 的附加欄位用來將數值日期轉換為格式化的日期欄位。

載入指令碼

```

SET DateFormat='DD/MM/YYYY'; 

Master_Calendar: 
Load 
      unformatted_date, 
      date(unformatted_date,'dd-MMMM-YYYY') as long_date, 
      day(date) as day_of_month

Inline
[ 
unformatted_date 
44868 
44898 
44928 
44958 
44988 
45018 
45048 
45078 
45008 
45038 
45068 
]; 

```

結果

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

* `unformatted_date`

* `long_date`

* `day_of_month`

結果表格

| unformatted\_date | long\_date | day\_of\_month |
| --- | --- | --- |
| 44868 | 2022 年 11 月 3 日 | 3 |
| 44898 | 2022 年 12 月 3 日 | 3 |
| 44928 | 2023 年 1 月 2 日 | 2 |
| 44958 | 2023 年 2 月 1 日 | 1 |
| 44988 | 2023 年 3 月 3 日 | 3 |
| 45008 | 23-March- 2023 | 23 |
| 45018 | 2023 年 4 月 2 日 | 2 |
| 45038 | 2023 年 4 月 22 日 | 22 |
| 45048 | 2023 年 5 月 2 日 | 2 |
| 45068 | 2023 年 5 月 22 日 | 22 |
| 45078 | 2023 年 6 月 1 日 | 1 |

月份中的日期目前由指令碼中的 `day()` 函數正確評估。

## 範例 4 – 計算到期月份 (圖表)

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

#### 載入指令碼和圖表運算式

概述

開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 名稱為 `Orders` 的三月下訂訂單資料集。表格含有三個欄位：

  * id

  * order\_date

  * 金額

載入指令碼

```

Orders: 
Load 
	 id, 
	 order_date, 
	 amount 
Inline  
[ 
id,order_date,amount 
1,03/01/2022,231.24 
2,03/02/2022,567.28 
3,03/03/2022,364.28 
4,03/04/2022,575.76 
5,03/05/2022,638.68 
6,03/06/2022,785.38 
7,03/07/2022,967.46 
8,03/08/2022,287.67 
9,03/09/2022,764.45 
10,03/10/2022,875.43 
11,03/11/2022,957.35 
]; 

```

結果

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

若要計算遞送日期，建立此量值：`=day(order_date+5)`。

結果表格

| order\_date | =day(order\_date+5) |
| --- | --- |
| 03/11/2022 | 16 |
| 03/12/2022 | 17 |
| 03/13/2022 | 18 |
| 03/14/2022 | 19 |
| 03/15/2022 | 20 |
| 03/16/2022 | 21 |
| 03/17/2022 | 22 |
| 03/18/2022 | 23 |
| 03/19/2022 | 24 |
| 03/20/2022 | 25 |
| 03/21/2022 | 26 |

`day()` 函數根據 5 天運送期間正確判定在 3 月 11 日下訂的訂單會在 16 日送達。

## 瞭解更多資訊

* [從先前載入的表格載入資料](https://help.qlik.com/zh-TW/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/load-data-from-previously-loaded-table.htm)