# second - 指令碼與圖表函數

當 expression 的分數根據標準數字解譯的方式可解譯為時間時，此函數會傳回代表秒的整數。

語法：

second (expression)

傳回的資料類型： 整數

## 什麼情況下使用

若您想要按秒比較彙總，則 `second()` 函數很實用。例如，若您想要按秒查看活動計數分佈，可使用該函數。

這些維度在建立時可以在載入指令碼進行，或使用函數建立「主要行事曆」表格的欄位，或是直接在圖表中當作計算維度使用。

函數範例

| 範例 | 結果 |
| --- | --- |
| `second(<br>'09:14:36' )` | 傳回 36 |
| `second(<br>'0.5555' )` | 傳回 55 (因為 0.5555 = 13:19:55) |

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：MM/DD/YYYY。日期格式是在資料載入指令碼的 `SET DateFormat` 陳述式中指定。由於地區設定和其他因素，您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式，以滿足您的需求。或者，您可以在載入指令碼中變更格式，以符合這些範例。

應用程式中的預設地區設定是根據安裝 Qlik Sense 之電腦或伺服器的地區系統設定。若您存取的 Qlik Sense 伺服器設定為瑞典，資料載入編輯器將會對日期、時間和貨幣使用瑞典文地區設定。這些地區格式設定與 Qlik Sense 使用者介面中顯示的語言無關。Qlik Sense 顯示的語言將與您正在使用的瀏覽器相同。

## 範例 1 – 變數

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/second.htm)

#### 載入指令碼和結果

概覽

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 包含依時間戳記之交易的資料集，這載入到稱為 `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 – 圖表物件

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/second.htm)

#### 載入指令碼和圖表運算式

概覽

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含與第一個範例相同的資料集和情境。不過，在此範例中，不變的資料集會載入到應用程式中。會透過圖表物件中的量值計算 `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 – 情境

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/second.htm)

#### 載入指令碼和圖表運算式

概覽

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 時間戳記資料集的產生可代表特定節日票券銷售網站的流量。這些時間戳記和對應的 `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;
```

結果

請執行下列動作：

1. 載入資料並開啟工作表。建立新的表格。

2. 接下來，使用下列運算式建立計算維度：

   `=second(timestamp)`

3. 建立彙總量值以計算總項目數：

   `=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 列 |  |