DateFormat在此頁面
此環境變數 定義作為應用程式 中預設值使用的日期格式,並按照傳回 date() 和 date#() 等函數的日期。格式用來解譯和格式化日期。若未定義變數,將會在指令碼執行時擷取區域設定所設定的日期格式。
語法:
DateFormat
DateFormat 函數範例
範例
結果
Set DateFormat='M/D/YY'; //(US format)
這樣的 DateFormat 函數使用方式將日期定義為 US 格式,即月/日/年。
Set DateFormat='DD/MM/YY'; //(UK date format)
這樣的 DateFormat 函數使用方式將日期定義為 UK 格式,即日/月/年。
Set DateFormat='YYYY/MM/DD'; //(ISO date format)
這樣的 DateFormat 函數使用方式將日期定義為 ISO 格式,即年/月/日。
區域設定
除非另有說明,否則此主題中的範例皆使用下列日期格式:MM/DD/YYYY。日期格式是在資料載入指令碼的 SET DateFormat 陳述式中指定。由於地區設定和其他因素,您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式,以滿足您的需求。或者,您可以在載入指令碼中變更格式,以符合這些範例。如需詳細資訊,請參閱 修改用於應用程式和指令碼的區域設定 。
應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud 使用者介面中顯示的語言無關。Qlik Cloud 顯示的語言將與您正在使用的瀏覽器相同。
若您是應用程式建立者,可以為您建立的應用程式設定預設地區。如需詳細資訊,請參閱Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定 。
範例 1 – 系統變數預設
載入指令碼和結果
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
在此範例中,資料集會載入到名為「Transactions 」的表格中。這包括 date 欄位 。使用 US DateFormat 定義。此模式將在載入文字日期時用於隱含文字到日期轉換。
載入指令碼
Set DateFormat='MM/DD/YYYY';
Transactions:
LOAD
date,
month(date) as month,
id,
amount
INLINE
[
date,id,amount
01/01/2022,1,1000
02/01/2022,2,2123
03/01/2022,3,4124
04/01/2022,4,2431
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
建立此量值 :
=sum(amount)
結果表格
日期
月
=sum(amount)
01/01/2022
一月
1000
02/01/2022
二月
2123
03/01/2022
三月
4124
04/01/2022
四月
2431
DateFormat 定義 MM/DD/YYYY 用於隱含的文字到日期轉換,因此 date 欄位可正確解譯為日期。相同格式用來顯示日期,如結果表格中所示。
範例 2 – 變更系統變數
載入指令碼和結果
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
SET DateFormat='DD/MM/YYYY';
Transactions:
LOAD
date,
month(date) as month,
id,
amount
INLINE
[
date,id,amount
01/01/2022,1,1000
02/01/2022,2,2123
03/01/2022,3,4124
04/01/2022,4,2431
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
建立此量值:
=sum(amount)
結果表格
日期
月
=sum(amount)
01/01/2022
一月
1000
02/01/2022
一月
2123
03/01/2022
一月
4124
04/01/2022
一月
2431
因為 DateFormat 定義已設定為「DD/MM/YYYY’」,您可以看見第一個「/」符號之後的兩位數字已解譯為月份,產生來自一月的所有記錄。
範例 3 – 日期解譯
載入指令碼和結果
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
date(numerical_date),
month(date(numerical_date)) as month,
id,
amount
Inline
[
numerical_date,id,amount
43254,1,1000
43255,2,2123
43256,3,4124
43258,4,2431
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
建立此量值:
=sum(amount)
結果表格
日期
月
=sum(amount)
06/03/2022
六月
1000
06/04/2022
六月
2123
06/05/2022
六月
4124
06/07/2022
六月
2431
在載入指令碼 中,您使用 date() 函數將數值日期轉換為日期格式。因為您沒有提供指定格式作為函數中的第二引數,所以會使用 DateFormat 。這產生使用格式「MM/DD/YYYY」的日期欄位。
範例 4 – 外國日期格式
載入指令碼和結果
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
// SET DateFormat='DD/MM/YYYY';
Transactions:
Load
date,
month(date) as month,
id,
amount
Inline
[
date,id,amount
22-05-2022,1,1000
23-05-2022,2,2123
24-05-2022,3,4124
25-05-2022,4,2431
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
建立此量值:
=sum(amount)
結果表格
日期
月
=sum(amount)
22-05-2022
-
1000
23-05-2022
-
2123
24-05-2022
-
4124
25-05-2022
-
2431
在初始載入指令碼中,正在使用的 DateFormat 是預設「MM/DD/YYYY」。因為交易資料集中的 date 欄位不屬於此格式,所以欄位不會解譯為日期。這顯示在結果表格中,其中 month 欄位值為 Null。
您可以檢查 date 欄位的「標記」屬性 ,以在資料模型檢視器 中驗證解譯的資料類型。
Transactions 表格的預覽。對指示文字輸入資料未隱含轉換至日期/時間戳記的 date 欄位記下「標記」。
這可以透過啟用 DateFormat 系統變數來解決:
// SET DateFormat='DD/MM/YYYY' ;
移除雙正斜線並載入資料。
Transactions 表格的預覽。對指示文字輸入資料已隱含轉換至日期/時間戳記的 date 欄位記下「標記」。