minute - 脚本和图表函数
此函数用于根据标准数字解释当 expression 小数部分被解释为时间时返回一个表示分钟的整数。
语法:
minute(expression)
返回数据类型: 整数
适用场景
当您希望按分钟比较聚合时,minute() 函数非常有用。例如,如果希望按分钟查看活动计数分布,可以使用该函数。
通过使用函数在主日历表中创建字段,可以在 Load 脚本中创建这些维度。或者,它们可以直接在图表中用作计算维度。
示例 | 结果 |
---|---|
minute ( '09:14:36' ) |
返回 14。 |
minute ( '0.5555' ) |
返回 19(因为 0.5555 = 13:19:55) |
区域设置
除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。
应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典,则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。
示例 1 – 变量(脚本)
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
按时间戳包含交易的数据集,加载到名为 Transactions 的表格中。
-
使用默认 TimeStamp 系统变量 (M/D/YYYY h:mm:ss[.fff] TT)。
-
创建字段 minute,以计算交易发生的时间。
加载脚本
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
Transactions:
Load
*,
minute(timestamp) as minute
;
Load
*
Inline
[
id,timestamp,amount
9497,'2022-01-05 19:04:57',47.25,
9498,'2022-01-03 14:21:53',51.75,
9499,'2022-01-03 05:40:49',73.53,
9500,'2022-01-04 18:49:38',15.35,
9501,'2022-01-01 22:10:22',31.43,
9502,'2022-01-05 19:34:46',13.24,
9503,'2022-01-04 22:58:34',74.34,
9504,'2022-01-06 11:29:38',50.00,
9505,'2022-01-02 08:35:54',36.34,
9506,'2022-01-06 08:49:09',74.23
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
timestamp
-
minute
时间戳 | minute |
---|---|
2022-01-01 22:10:22 | 10 |
2022-01-02 08:35:54 | 35 |
2022-01-03 05:40:49 | 40 |
2022-01-03 14:21:53 | 21 |
2022-01-04 18:49:38 | 49 |
2022-01-04 22:58:34 | 58 |
2022-01-05 19:04:57 | 4 |
2022-01-05 19:34:46 | 34 |
2022-01-06 08:49:09 | 49 |
2022-01-06 11:29:38 | 29 |
minute 字段中的值是通过使用 minute() 函数并将 timestamp 作为前置 Load 语句中的表达式传递来创建的。
示例 2–图表对象(图表)
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
与第一个示例相同的数据集和场景。
-
使用默认 TimeStamp 系统变量 (M/D/YYYY h:mm:ss[.fff] TT) 。
然而,在本例中,未更改的数据集被加载到应用程序中。 minute 通过图表对象中的度量计算值。
加载脚本
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
Transactions:
Load
*
Inline
[
id,timestamp,amount
9497,'2022-01-05 19:04:57',47.25,
9498,'2022-01-03 14:21:53',51.75,
9499,'2022-01-03 05:40:49',73.53,
9500,'2022-01-04 18:49:38',15.35,
9501,'2022-01-01 22:10:22',31.43,
9502,'2022-01-05 19:34:46',13.24,
9503,'2022-01-04 22:58:34',74.34,
9504,'2022-01-06 11:29:38',50.00,
9505,'2022-01-02 08:35:54',36.34,
9506,'2022-01-06 08:49:09',74.23
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度: timestamp。
创建以下度量:
=minute(timestamp)
时间戳 | minute |
---|---|
2022-01-01 22:10:22 | 10 |
2022-01-02 08:35:54 | 35 |
2022-01-03 05:40:49 | 40 |
2022-01-03 14:21:53 | 21 |
2022-01-04 18:49:38 | 49 |
2022-01-04 22:58:34 | 58 |
2022-01-05 19:04:57 | 4 |
2022-01-05 19:34:46 | 34 |
2022-01-06 08:49:09 | 49 |
2022-01-06 11:29:38 | 29 |
minute 的值是通过使用 minute() 函数并将 timestamp 作为表达式传递给图表对象的度量来创建的。
示例 3 – 场景
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
时间戳的数据集,生成该数据集以表示检票口处的条目。
-
每个 timestamp 的信息及其对应的 id,加载到名为 Ticket_Barrier_Tracker 的表中。
-
使用默认 TimeStamp 系统变量 (M/D/YYYY h:mm:ss[.fff] TT) 。
用户需要一个图表对象,以分钟为单位显示关口条目的计数。
加载脚本
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
tmpTimeStampCreator:
load
*
where year(date)=2022;
load
date(recno()+makedate(2021,12,31)) as date
AutoGenerate 1;
join load
maketime(floor(rand()*24),floor(rand()*59),floor(rand()*59)) as time
autogenerate 10000;
Ticket_Barrier_Tracker:
load
recno() as id,
timestamp(date + time) as timestamp
resident tmpTimeStampCreator;
drop table tmpTimeStampCreator;
结果
执行以下操作:
-
加载数据并打开工作表。新建表格。
-
使用以下表达式创建计算维度:
=minute(timestamp)
-
添加以下聚合度量以计算条目总数:
=count(id)
-
将度量的数字格式设置为金额。
minute(timestamp) | =count(id) |
---|---|
0 | 174 |
1 | 171 |
2 | 175 |
3 | 165 |
4 | 188 |
5 | 176 |
6 | 158 |
7 | 187 |
8 | 178 |
9 | 178 |
10 | 197 |
11 | 161 |
12 | 166 |
13 | 184 |
14 | 159 |
15 | 161 |
16 | 152 |
17 | 160 |
18 | 176 |
19 | 164 |
20 | 170 |
21 | 170 |
22 | 142 |
23 | 145 |
24 | 155 |
+ 35 更多行 |