monthname - 指令碼與圖表函數
此函數會傳回顯示月份 (根據 MonthNames 指令碼變數進行格式設定) 和年度的顯示值,其基礎數值相當於該月份第一天、第一毫秒的時間戳記。
語法:
MonthName(date[, period_no])
傳回的資料類型: 雙值
引數 | 描述 |
---|---|
date | 要評估的時間戳記。 |
period_no | period_no 是一個整數,如果為 0 或忽略,則表示包含 date 的月份。負值的 period_no 表示之前的月份,正值表示之後的月份。 |
範例 | 結果 |
---|---|
monthname('10/19/2013') | 傳回 Oct 2013 |
monthname('10/19/2013', -1) | 傳回 Sep 2013 |
區域設定
除非另有說明,否則此主題中的範例皆使用下列日期格式:MM/DD/YYYY。日期格式是在資料載入指令碼的 SET DateFormat 陳述式中指定。由於地區設定和其他因素,您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式,以滿足您的需求。或者,您可以在載入指令碼中變更格式,以符合這些範例。
應用程式中的預設地區設定是根據安裝 Qlik Sense 之電腦或伺服器的地區系統設定。若您存取的 Qlik Sense 伺服器設定為瑞典,資料載入編輯器將會對日期、時間和貨幣使用瑞典文地區設定。這些地區格式設定與 Qlik Sense 使用者介面中顯示的語言無關。Qlik Sense 顯示的語言將與您正在使用的瀏覽器相同。
範例 1 – 基本範例
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
包含一組 2022 年交易的資料集,這載入到稱為 Transactions 的表格中。
-
以 DateFormat 系統變數 (MM/DD/YYYY) 格式提供的日期欄位。
-
建立欄位 transaction_month,這傳回交易發生的月份。
載入指令碼
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*,
monthname(date) as transaction_month
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
date
-
transaction_month
日期 | transaction_month |
---|---|
1/7/2022 | 2022 年 1 月 |
1/19/2022 | 2022 年 1 月 |
2/5/2022 | 2022 年 2 月 |
2/28/2022 | 2022 年 2 月 |
3/16/2022 | 2022 年 3 月 |
4/1/2022 | 2022 年 4 月 |
5/7/2022 | 2022 年 5 月 |
5/16/2022 | 2022 年 5 月 |
6/15/2022 | 2022 年 6 月 |
6/26/2022 | 2022 年 6 月 |
7/9/2022 | 2022 年 7 月 |
7/22/2022 | 2022 年 7 月 |
7/23/2022 | 2022 年 7 月 |
7/27/2022 | 2022 年 7 月 |
8/2/2022 | 2022 年 8 月 |
8/8/2022 | 2022 年 8 月 |
8/19/2022 | 2022 年 8 月 |
9/26/2022 | 2022 年 9 月 |
10/14/2022 | 2022 年 10 月 |
10/29/2022 | 2022 年 10 月 |
transaction_month 欄位在前置 LOAD 陳述式中的建立方式是使用 monthname() 函數並傳遞 date 欄位,作為函數的引數。
monthname() 函數決定交易 8192 發生在 2022 年 3 月,並使用 MonthNames 系統變數傳回此值。
範例 2 – period_no
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
與第一個範例相同的內嵌資料集和情境。
-
建立欄位 transaction_previous_month,這傳回交易發生之前的月份結束的時間戳記。
載入指令碼
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*,
monthname(date,-1) as transaction_previous_month
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
date
-
transaction_previous_month
日期 | transaction_previous_month |
---|---|
1/7/2022 | 2021 年 12 月 |
1/19/2022 | 2021 年 12 月 |
2/5/2022 | 2022 年 1 月 |
2/28/2022 | 2022 年 1 月 |
3/16/2022 | 2022 年 2 月 |
4/1/2022 | 2022 年 3 月 |
5/7/2022 | 2022 年 4 月 |
5/16/2022 | 2022 年 4 月 |
6/15/2022 | 2022 年 5 月 |
6/26/2022 | 2022 年 5 月 |
7/9/2022 | 2022 年 6 月 |
7/22/2022 | 2022 年 6 月 |
7/23/2022 | 2022 年 6 月 |
7/27/2022 | 2022 年 6 月 |
8/2/2022 | 2022 年 7 月 |
8/8/2022 | 2022 年 7 月 |
8/19/2022 | 2022 年 7 月 |
9/26/2022 | 2022 年 8 月 |
10/14/2022 | 2022 年 9 月 |
10/29/2022 | 2022 年 9 月 |
在此例中,因為 period_no 的值 -1 已作為 monthname() 函數中的偏移引數使用,所以該函數首先會識別交易發生的月份。然後這會往前移動一個月並傳回月份名稱和年份。
交易 8192 發生於 3 月 16 日。monthname() 函數識別交易發生之前的月份是 2 月,並以 MonthNames 系統變數格式傳回該月份以及 2022 年。
範例 3 – 圖表物件範例
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含與第一個範例相同的內嵌資料集和情境。不過,在此範例中,不變的資料集會載入到應用程式中。會建立傳回交易發生月份結束時間戳記的計算,作為應用程式圖表物件中的量值。
載入指令碼
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度:date。
建立下列量值:
=monthname(date)
日期 | =monthname(date) |
---|---|
1/7/2022 | 2022 年 1 月 |
1/19/2022 | 2022 年 1 月 |
2/5/2022 | 2022 年 2 月 |
2/28/2022 | 2022 年 2 月 |
3/16/2022 | 2022 年 3 月 |
4/1/2022 | 2022 年 4 月 |
5/7/2022 | 2022 年 5 月 |
5/16/2022 | 2022 年 5 月 |
6/15/2022 | 2022 年 6 月 |
6/26/2022 | 2022 年 6 月 |
7/9/2022 | 2022 年 7 月 |
7/22/2022 | 2022 年 7 月 |
7/23/2022 | 2022 年 7 月 |
7/27/2022 | 2022 年 7 月 |
8/2/2022 | 2022 年 8 月 |
8/8/2022 | 2022 年 8 月 |
8/19/2022 | 2022 年 8 月 |
9/26/2022 | 2022 年 9 月 |
10/14/2022 | 2022 年 10 月 |
10/29/2022 | 2022 年 10 月 |
month_name 量值在圖表物件中的建立方式是使用 monthname() 函數並傳遞 date 欄位,作為函數的引數。
monthname() 函數決定交易 8192 發生在 2022 年 3 月,並使用 MonthNames 系統變數傳回此值。