second - 指令碼與圖表函數
當 expression 的分數根據標準數字解譯的方式可解譯為時間時,此函數會傳回代表秒的整數。
語法:
second (expression)
傳回的資料類型: 整數
什麼情況下使用
若您想要按秒比較彙總,則 second() 函數很實用。例如,若您想要按秒查看活動計數分佈,可使用該函數。
這些維度在建立時可以在載入指令碼進行,或使用函數建立「主要行事曆」表格的欄位,或是直接在圖表中當作計算維度使用。
範例 | 結果 |
---|---|
second( '09:14:36' ) |
傳回 36 |
second( '0.5555' ) |
傳回 55 (因為 0.5555 = 13:19:55) |
區域設定
除非另有說明,否則此主題中的範例皆使用下列日期格式:MM/DD/YYYY。日期格式是在資料載入指令碼的 SET DateFormat 陳述式中指定。由於地區設定和其他因素,您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式,以滿足您的需求。或者,您可以在載入指令碼中變更格式,以符合這些範例。如需詳細資訊,請參閱 修改用於應用程式和指令碼的區域設定。
應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud 使用者介面中顯示的語言無關。Qlik Cloud 顯示的語言將與您正在使用的瀏覽器相同。
若您是應用程式建立者,可以為您建立的應用程式設定預設地區。如需詳細資訊,請參閱Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定。
範例 1 – 變數
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
包含依時間戳記之交易的資料集,這載入到稱為 Transactions 的表格中。
-
已使用預設的 TimeStamp 系統變數 (M/D/YYYY h:mm:ss[.fff] TT)。
-
購買時用於計算的欄位 second 建立。
載入指令碼
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
Transactions:
Load
*,
second(date) as second
;
Load
*
Inline
[
id,date,amount
9497,'01/05/2022 7:04:57 PM',47.25
9498,'01/03/2022 2:21:53 PM',51.75
9499,'01/03/2022 5:40:49 AM',73.53
9500,'01/04/2022 6:49:38 PM',15.35
9501,'01/01/2022 10:10:22 PM',31.43
9502,'01/05/2022 7:34:46 PM',13.24
9503,'01/06/2022 10:58:34 PM',74.34
9504,'01/06/2022 11:29:38 AM',50.00
9505,'01/02/2022 8:35:54 AM',36.34
9506,'01/06/2022 8:49:09 AM',74.23
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
date
-
second
日期 | second |
---|---|
01/01/2022 10:10:22 PM | 22 |
01/02/2022 8:35:54 AM | 54 |
01/03/2022 5:40:49 AM | 49 |
01/03/2022 2:21:53 PM | 53 |
01/04/2022 6:49:38 PM | 38 |
01/05/2022 7:04:57 PM | 57 |
01/05/2022 7:34:46 PM | 46 |
01/06/2022 8:49:09 AM | 9 |
01/06/2022 11:29:38 AM | 38 |
01/06/2022 10:58:34 PM | 34 |
使用 second() 函數並傳遞日期作為前置 LOAD 陳述式中的運算式,以建立 second 欄位中的值。
範例 2 – 圖表物件
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含與第一個範例相同的資料集和情境。不過,在此範例中,不變的資料集會載入到應用程式中。會透過圖表物件中的量值計算 second 值。
載入指令碼
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
Transactions:
Load
*
Inline
[
id,date,amount
9497,'01/05/2022 7:04:57 PM',47.25
9498,'01/03/2022 2:21:53 PM',51.75
9499,'01/03/2022 5:40:49 AM',73.53
9500,'01/04/2022 6:49:38 PM',15.35
9501,'01/01/2022 10:10:22 PM',31.43
9502,'01/05/2022 7:34:46 PM',13.24
9503,'01/06/2022 10:58:34 PM',74.34
9504,'01/06/2022 11:29:38 AM',50.00
9505,'01/02/2022 8:35:54 AM',36.34
9506,'01/06/2022 8:49:09 AM',74.23
];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度:date。
建立下列量值:
=second(date)
日期 | =second(date) |
---|---|
01/01/2022 10:10:22 PM | 22 |
01/02/2022 8:35:54 AM | 54 |
01/03/2022 5:40:49 AM | 49 |
01/03/2022 2:21:53 PM | 53 |
01/04/2022 6:49:38 PM | 38 |
01/05/2022 7:04:57 PM | 57 |
01/05/2022 7:34:46 PM | 46 |
01/06/2022 8:49:09 AM | 9 |
01/06/2022 11:29:38 AM | 38 |
01/06/2022 10:58:34 PM | 34 |
second 值的建立方式是使用 second() 函數並傳遞日期作為圖表物件量值中的運算式。
範例 3 – 情境
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
時間戳記資料集的產生可代表特定節日票券銷售網站的流量。這些時間戳記和對應的 id 位於稱為 Web_Traffic 的表格中。
-
已使用 TimeStamp 系統變數 M/D/YYYY h:mm:ss[.fff] TT。
在此情境中,總共有 10,000 張票券,並在 2021 年 5 月 20 日上午 9:00 開賣。票卷在一分鐘後完售。
使用者需要按秒顯示網站訪客數量的圖表物件。
載入指令碼
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
tmpTimeStampCreator:
load
makedate(2022,05,20) as date
AutoGenerate 1;
join load
maketime(9+floor(rand()*2),0,floor(rand()*59)) as time
autogenerate 10000;
Web_Traffic:
load
recno() as id,
timestamp(date + time) as timestamp
resident tmpTimeStampCreator;
drop table tmpTimeStampCreator;
結果
請執行下列動作:
-
載入資料並開啟工作表。建立新的表格。
-
接下來,使用下列運算式建立計算維度:
=second(timestamp)
-
建立彙總量值以計算總項目數:
=count(id)
結果表格與下表類似,但具有不同的彙總量值:
second(timestamp) | =count(id) |
---|---|
0 | 150 |
1 | 184 |
2 | 163 |
3 | 178 |
4 | 179 |
5 | 158 |
6 | 177 |
7 | 169 |
8 | 149 |
9 | 186 |
10 | 169 |
11 | 179 |
12 | 186 |
13 | 182 |
14 | 180 |
15 | 153 |
16 | 191 |
17 | 203 |
18 | 158 |
19 | 159 |
20 | 163 |
其他 39 列 |