# 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` 字段中的值是通过使用 `second()` 函数并将日期作为前置 Load 语句中的表达式传递来创建的。

## 示例 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`。

在这种情况下，共有 10000 张门票，于 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(时间戳) | =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 更多行 |  |