# hour - 脚本和图表函数

此函数用于根据标准数字解释当 expression 小数部分被解释为时间时返回一个表示小时的整数。

语法：

hour(expression)

返回数据类型： 整数

## 区域设置

除非另有规定，本主题中的示例使用以下日期格式：MM/DD/YYYY。日期格式已经在数据加载脚本中的 `SET DateFormat` 语句中指定。由于区域设置和其他因素，系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者，您可以更改加载脚本中的格式以匹配这些示例。

应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典，则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。

函数示例

| 示例 | 结果 |
| --- | --- |
| `hour(<br>'09:14:36' )` | 提供的文本字符串隐式转换为时间戳，因为它与 TimestampFormat 变量中定义的时间戳格式相匹配。表达式返回 9。 |
| `hour(<br>'0.5555' )` | 表达式返回 13（因为 0.5555 = 13:19:55） |

## 示例 1 – 变量（脚本）

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

#### 加载脚本和结果

概述

打开 数据加载编辑器，并将下面的加载脚本添加到新选项卡。

加载脚本包含：

* 按时间戳包含交易的数据集

* 默认 `TimeStamp` 系统变量 `(M/D/YYYY h:mm:ss[.fff] TT)`

创建字段 '`hour`'，计算购买发生的时间。

加载脚本

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
						
Transactions: 			
  Load 
    *, 
    hour(date) as hour 
    ; 
Load 
* 
Inline  
[ 
id,date,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 
]; 
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `date`

* `hour`

结果表

| 日期 | hour |
| --- | --- |
| 2022-01-01 22:10:22 | 22 |
| 2022-01-02 08:35:54 | 8 |
| 2022-01-03 05:40:49 | 5 |
| 2022-01-03 14:21:53 | 14 |
| 2022-01-04 18:49:38 | 18 |
| 2022-01-04 22:58:34 | 22 |
| 2022-01-05 19:04:57 | 19 |
| 2022-01-05 19:34:46 | 19 |
| 2022-01-06 08:49:09 | 8 |
| 2022-01-06 11:29:38 | 11 |

小时字段中的值是通过使用 `hour()` 函数并将日期作为前面 Load 语句中的表达式传递来创建的。

## 示例 2–图表对象（图表）

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

#### 加载脚本和图表表达式

概述

打开 数据加载编辑器，并将下面的加载脚本添加到新选项卡。

加载脚本包含：

* 第一个示例中的相同数据集。

* 默认 `TimeStamp` 系统变量 `(M/D/YYYY h:mm:ss[.fff] TT)`。

然而，在本例中，未更改的数据集被加载到应用程序中。‘`hour`’ 通过图表对象中的度量计算值。

加载脚本

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT'; 
			 
Transactions: 
Load 
* 
Inline  
[ 
id,date,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 
]; 
				
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度： `date`。

要计算 ‘`hour`’，创建以下度量：

`=hour(date)`

结果表

| due\_date | =hour(date) |
| --- | --- |
| 2022-01-01 22:10:22 | 22 |
| 2022-01-02 08:35:54 | 8 |
| 2022-01-03 05:40:49 | 5 |
| 2022-01-03 14:21:53 | 14 |
| 2022-01-04 18:49:38 | 18 |
| 2022-01-04 22:58:34 | 22 |
| 2022-01-05 19:04:57 | 19 |
| 2022-01-05 19:34:46 | 19 |
| 2022-01-06 08:49:09 | 8 |
| 2022-01-06 11:29:38 | 11 |

‘`hour`’ 的值是通过使用 `hour()` 函数并将日期作为表达式传递给图表对象的度量来创建的。