# hour 指令碼與圖表函數

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

語法：

hour(expression)

傳回的資料類型： 整數

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：MM/DD/YYYY。日期格式是在資料載入指令碼的 `SET DateFormat` 陳述式中指定。由於地區設定和其他因素，您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式，以滿足您的需求。或者，您可以在載入指令碼中變更格式，以符合這些範例。如需詳細資訊，請參閱 [修改用於應用程式和指令碼的區域設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)。

應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud 使用者介面中顯示的語言無關。Qlik Cloud 顯示的語言將與您正在使用的瀏覽器相同。

若您是應用程式建立者，可以為您建立的應用程式設定預設地區。如需詳細資訊，請參閱[Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)。

函數範例

| 範例 | 結果 |
| --- | --- |
| `hour(<br>'09:14:36' )` | 套用的文字字串隱含轉換為時間戳記，因為這符合 TimestampFormat 變數中定義的時間戳記格式。運算式傳回 9。 |
| `hour(<br>'0.5555' )` | 運算式傳回 13 (因為 0.5555 = 13:19:55)。 |

## 範例 1 – 變數 (指令碼)

[](https://help.qlik.com/en-US/cloud-services/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`

結果表格

| 日期 | 小時 |
| --- | --- |
| 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/cloud-services/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()` 函數並傳遞日期作為圖表物件量值中的運算式。