day - 指令碼與圖表函數
當 expression 的分數根據標準數字解譯的方式可解譯為日期時,此函數會傳回代表日的整數。
該函數針對特定日期傳回該月的日子。這通常用來衍生日欄位,作為行事曆維度的一部分。
語法:
day(expression)
傳回的資料類型: 整數
範例 | 結果 |
---|---|
day( 1971-10-12 ) |
傳回 12 |
day( 35648 ) | 傳回 6,因為 35648 = 1997-08-06 |
範例 1 – DateFormat 資料集 (指令碼)
概述
開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
名稱為 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 日期 (指令碼)
概述
開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
名稱為 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 – 未格式化的日期 (指令碼)
概述
開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
名稱為 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 |
02-May- 2023 |
2 |
45068 |
22-May- 2023 |
22 |
45078 |
2023 年 6 月 1 日 |
1 |
月份中的日期目前由指令碼中的 day() 函數正確評估。
範例 4 – 計算到期月份 (圖表)
概述
開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
名稱為 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 日送達。