month - 指令碼與圖表函數
此函數會傳回雙值:一個如環境變數 MonthNames 中所定義的月份名稱,一個介於 1 與 12 之間的整數。月份是根據標準數字解譯,從運算式的日期解譯計算所得。
該函數針對特定日期以 MonthName 系統變數的格式傳回月份名稱。這通常用來建立日欄位,作為主要行事曆中的維度。
語法:
month(expression)
傳回的資料類型: 整數
範例 | 結果 |
---|---|
month( 2012-10-12 ) |
傳回十月 |
month( 35648 ) | 傳回八月,因為 35648 = 1997-08-06 |
範例 1 – DateFormat 資料集 (指令碼)
概述
開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
名稱為 Master_Calendar 的日期資料集。DateFormat 系統變數設定為 DD/MM/YYYY。
-
使用 month() 函數建立附加欄位 (名稱為 month_name) 的前置載入。
-
名稱為 long_date 的附加欄位,使用 date() 函數表示完整日期。
載入指令碼
SET DateFormat='DD/MM/YYYY';
Master_Calendar:
Load
date,
date(date,'dd-MMMM-YYYY') as long_date,
month(date) as month_name
Inline
[
date
03/01/2022
03/02/2022
03/03/2022
03/04/2022
03/05/2022
03/06/2022
03/07/2022
03/08/2022
03/09/2022
03/10/2022
03/11/2022
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
date
-
long_date
-
month_name
日期 |
long_date |
month_name |
---|---|---|
03/01/2022 |
2022 年 1 月3 日 |
一月 |
03/02/2022 |
2022 年 2 月 3 日 |
二月 |
03/03/2022 |
2022 年 3 月 3 日 |
三月 |
03/04/2022 |
2022 年 4 月 3 日 |
四月 |
03/05/2022 |
03-May- 2022 |
五月 |
03/06/2022 |
2022 年 6 月 3 日 |
六月 |
03/07/2022 |
2022 年 7 月 3 日 |
7 月 |
03/08/2022 |
2022 年 8 月 3 日 |
8 月 |
03/09/2022 |
2022 年 9 月 3 日 |
9 月 |
03/10/2022 |
2022 年 10 月 3 日 |
10 月 |
03/11/2022 |
2022 年 11 月 3 日 |
11 月 |
月份名稱目前由指令碼中的 month() 函數正確評估。
範例 2 – ANSI 日期 (指令碼)
概述
開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
名稱為 Master_Calendar 的日期資料集。使用 DateFormat 系統變數 DD/MM/YYYY。不過,資料集中包括的日期屬於 ANSI 標準日期格式。
-
使用 month() 函數建立附加欄位 (名稱為 month_name) 的前置載入。
-
名稱為 long_date 的附加欄位,使用 date() 函數表示完整日期。
載入指令碼
SET DateFormat='DD/MM/YYYY';
Master_Calendar:
Load
date,
date(date,'dd-MMMM-YYYY') as long_date,
month(date) as month_name
Inline
[
date
2022-01-11
2022-02-12
2022-03-13
2022-04-14
2022-05-15
2022-06-16
2022-07-17
2022-08-18
2022-09-19
2022-10-20
2022-11-21
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
date
-
long_date
-
month_name
日期 |
long_date |
month_name |
---|---|---|
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 |
月份名稱目前由指令碼中的 month() 函數正確評估。
範例 3 – 未格式化的日期 (指令碼)
概述
開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
名稱為 Master_Calendar 的日期資料集。使用 DateFormat 系統變數 DD/MM/YYYY。
-
使用 month() 函數建立附加欄位 (名稱為 month_name) 的前置載入。
-
原始未格式化的日期,名稱為 unformatted_date。
-
名稱為 long_date 的附加欄位,使用 date() 函數表示完整日期。
載入指令碼
SET DateFormat='DD/MM/YYYY';
Master_Calendar:
Load
unformatted_date,
date(unformatted_date,'dd-MMMM-YYYY') as long_date,
month(unformatted_date) as month_name
Inline
[
unformatted_date
44868
44898
44928
44958
44988
45018
45048
45078
45008
45038
45068
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
unformatted_date
-
long_date
-
month_name
unformatted_date |
long_date |
month_name |
---|---|---|
44868 | 2022 年 1 月3 日 | 一月 |
44898 | 2022 年 2 月3 日 | 二月 |
44928 | 2022 年 3 月3 日 | 三月 |
44958 | 2022 年 4 月3 日 | 四月 |
44988 | 03-May- 2022 | 五月 |
45018 | 2022 年 6 月3 日 | 六月 |
45048 | 2022 年 7 月3 日 | 7 月 |
45078 | 2022 年 8 月3 日 | 8 月 |
45008 | 2022 年 9 月3 日 | 9 月 |
45038 | 2022 年 10 月3 日 | 10 月 |
45068 | 2022 年 11 月 3 日 | 11 月 |
月份名稱目前由指令碼中的 month() 函數正確評估。
範例 4 – 計算到期月份
概述
開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
名稱為 Subscriptions 的三月下訂訂單資料集。表格含有三個欄位:
-
id
-
order_date
-
金額
-
載入指令碼
Subscriptions:
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。
若要計算訂單到期的月份,建立此量值:=month(order_date+180)。
order_date | =month(order_date+180) |
---|---|
03/01/2022 | 7 月 |
03/02/2022 | 8 月 |
03/03/2022 | 8 月 |
03/04/2022 | 9 月 |
03/05/2022 | 10 月 |
03/06/2022 | 11 月 |
03/07/2022 | 12 月 |
03/08/2022 | 一月 |
03/09/2022 | 三月 |
03/10/2022 | 四月 |
03/11/2022 | 五月 |
month() 函數正確判定在 3 月 11 日下訂的訂單會在 7 月到期。