year - 指令碼與圖表函數在此頁面
當 expression 根據標準數字解譯的方式可解譯為日期時,此函數會傳回代表年份的整數。
語法:
year( expression )
傳回的資料類型: 整數
year() 函數可作為指令碼和圖表函數。該函數傳回特定日期的年份。這通常用來建立年份欄位,作為主要行事曆中的維度。
什麼情況下使用
若您想要按年份比較彙總,則 year() 函數很實用。例如,若您想要按年份查看產品的總銷售額,可使用此函數。
可以使用該函數建立主要行事曆表格中的欄位,以在載入指令碼中建立這些維度。相反地,這可直接在圖表中作為計算維度使用。
函數範例
year(
'2012-10-12' )
傳回 2012
year(
'35648' )
傳回 1997,因為 35648 = 1997-08-06
區域設定
除非另有說明,否則此主題中的範例皆使用下列日期格式:MM/DD/YYYY。日期格式是在資料載入指令碼的 SET DateFormat 陳述式中指定。由於地區設定和其他因素,您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式,以滿足您的需求。或者,您可以在載入指令碼中變更格式,以符合這些範例。
應用程式中的預設地區設定是根據安裝 Qlik Sense 之電腦或伺服器的地區系統設定。若您存取的 Qlik Sense 伺服器設定為瑞典,資料載入編輯器將會對日期、時間和貨幣使用瑞典文地區設定。這些地區格式設定與 Qlik Sense 使用者介面中顯示的語言無關。Qlik Sense 顯示的語言將與您正在使用的瀏覽器相同。
範例 1 – DateFormat 資料集 (指令碼) 載入指令碼和結果 概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入到名為 Master Calendar 之表格中的日期資料集。
使用預設 DateFormat 系統變數 MM/DD/YYYY。
使用 year() 函數建立附加欄位 year 的前置載入。
載入指令碼
SET DateFormat='MM/DD/YYYY';
Master_Calendar:
Load
date,
year(date) as year
;
Load
date
Inline
[
date
12/28/2020
12/29/2020
12/30/2020
12/31/2020
01/01/2021
01/02/2021
01/03/2021
01/04/2021
01/05/2021
01/06/2021
01/07/2021
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
結果表格 12/28/2020 2020 12/29/2020 2020 12/30/2020 2020 12/31/2020 2020 01/01/2021 2021 01/02/2021 2021 01/03/2021 2021 01/04/2021 2021 01/05/2021 2021 01/06/2021 2021 01/07/2021 2021
範例 2 – ANSI 日期 載入指令碼和結果 概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入到名為 Master Calendar 之表格中的日期資料集。
使用預設 DateFormat 系統變數 MM/DD/YYYY。不過,資料集中包括的日期屬於 ANSI 標準日期格式。
使用 year() 函數建立附加欄位 year 的前置載入。
載入指令碼
SET DateFormat='MM/DD/YYYY';
Master_Calendar:
Load
date,
year(date) as year
;
Load
date
Inline
[
date
2020-12-28
2020-12-29
2020-12-30
2020-12-31
2021-01-01
2021-01-02
2021-01-03
2021-01-04
2021-01-05
2021-01-06
2021-01-07
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
結果表格 2020-12-28 2020 2020-12-29 2020 2020-12-30 2020 2020-12-31 2020 2021-01-01 2021 2021-01-02 2021 2021-01-03 2021 2021-01-04 2021 2021-01-05 2021 2021-01-06 2021 2021-01-07 2021
範例 3 – 未格式化的日期 載入指令碼和結果 概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入到名為 Master Calendar 之表格中數字格式的日期資料集。
使用預設 DateFormat 系統變數 MM/DD/YYYY。
使用 year() 函數建立附加欄位 year 的前置載入。
名為 unformatted_date 之原始未格式化的日期已載入,且為了更加清晰,已將名為 long_date 的附加欄位用於使用 date() 函數將數字日期轉換為格式化日期欄位。
載入指令碼
SET DateFormat='MM/DD/YYYY';
Master_Calendar:
Load
unformatted_date,
date(unformatted_date) as long_date,
year(unformatted_date) as year
;
Load
unformatted_date
Inline
[
unformatted_date
44868
44898
44928
44958
44988
45018
45048
45078
45008
45038
45068
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
unformatted_date
long_date
year
結果表格 44868 11/03/2022 2022 44898 12/03/2022 2022 44928 01/02/2023 2023 44958 02/01/2023 2023 44988 03/03/2023 2023 45008 03/23/2023 2023 45018 04/02/2023 2023 45038 04/22/2023 2023 45048 05/02/2023 2023 45068 05/22/2023 2023 45078 06/01/2023 2023
範例 4 – 圖表物件範例 載入指令碼和圖表運算式 概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
在此範例中,順序資料集會載入到名為銷售的表格中。表格含有三個欄位:
產品銷售保固自銷售日起持續兩年。任務是為了在圖表中建立量值,以便判定每次保固會到期的年份。
載入指令碼
Sales:
Load
id,
sales_date,
amount
Inline
[
id,sales_date,amount
1,12/28/2020,231.24,
2,12/29/2020,567.28,
3,12/30/2020,364.28,
4,12/31/2020,575.76,
5,01/01/2021,638.68,
6,01/02/2021,785.38,
7,01/03/2021,967.46,
8,01/04/2021,287.67
9,01/05/2021,764.45,
10,01/06/2021,875.43,
11,01/07/2021,957.35
];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度: sales_date 。
建立下列量值:
=year(sales_date+365*2)
結果表格 12/28/2020 2022 12/29/2020 2022 12/30/2020 2022 12/31/2020 2022 01/01/2021 2023 01/02/2021 2023 01/03/2021 2023 01/04/2021 2023 01/05/2021 2023 01/06/2021 2023 01/07/2021 2023
上表可看到此量值的結果。若要在日期中新增兩年,將 365 乘以 2 並將結果新增至銷售日期。因此,發生在 2020 年之銷售的到期年份是 2022 年。