# GMT - 指令碼與圖表函數

此函數會傳回目前 Greenwich Mean Time，如衍生自區域設定。 該函數會以 `TimestampFormat` 系統變數格式傳回值。

載入應用程式時，將會根據從系統時鐘取得的最新格林威治標準時間調整任何使用 `GMT` 函數的載入指令碼表格、變數或圖表物件。

語法：

GMT( )

傳回的資料類型： 雙值

這些範例使用時間戳記格式 `M/D/YYYY h:mm:ss[.fff] TT`。日期格式是在位於資料載入指令碼頂端的 `SET TimestampFormat` 陳述式中指定。變更範例中的格式，以滿足您的需求。

函數範例

| 範例 | 結果 |
| --- | --- |
| `GMT()` | 3/28/2022 2:47:36 PM |

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：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/GMT.htm)

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

概覽

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。此範例使用 `GMT` 函數將目前的格林威治標準時間設定為載入指令碼中的變數。

載入指令碼

```

LET vGMT = GMT();
```

結果

載入資料並建立工作表。使用文字與影像圖表物件建立文字方塊。

將此量值新增至文字方塊：

`=vGMT`

文字方塊應包含具有日期和時間的文字行，類似以下所示：

`3/28/2022 2:47:36 PM`

## 範例 2 - 11 月是一年的開始 (指令碼)

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

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

概覽

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 包含過期圖書館書籍的資料集，這載入到名為 `Overdue` 的表格中。使用預設 `DateFormat` 系統變數 MM/DD/YYYY。

* 建立名為 `days_overdue` 的新欄位，這計算每本書過期了多少天。

載入指令碼

```
SET DateFormat='MM/DD/YYYY'; 

Overdue: 
    Load 
        *,
        Floor(GMT()-due_date) as days_overdue
        ;
Load 
*
Inline
[
cust_id,book_id,due_date
1,4,01/01/2021,
2,24,01/10/2021,
6,173,01/31/2021,
31,281,02/01/2021,
86,265,02/10/2021,
52,465,06/30/2021,
26,537,07/26/2021,
92,275,10/31/2021,
27,455,11/01/2021,
27,46,12/31/2021
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `due_date`

* `book_id`

* `days_overdue`

結果表格

| due\_date | book\_id | days\_overdue |
| --- | --- | --- |
| 01/01/2021 | 4 | 455 |
| 01/10/2021 | 24 | 446 |
| 01/31/2021 | 173 | 425 |
| 02/01/2021 | 281 | 424 |
| 02/10/2021 | 265 | 415 |
| 06/30/2021 | 465 | 275 |
| 07/26/2021 | 537 | 249 |
| 10/31/2021 | 275 | 152 |
| 11/01/2021 | 455 | 151 |
| 12/31/2021 | 46 | 91 |

`days_overdue` 欄位中的值的計算方式是使用 `GMT()` 函數尋找目前格林威治標準時間與原始到期日期之間的差異。為了僅計算天數，會使用 `Floor()` 函數，將結果四捨五入為最接近的整數。

## 範例 3 - 圖表物件 (圖表)

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

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

概覽

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。載入指令碼包含與上一個範例相同的資料集。使用預設 `DateFormat` 系統變數 MM/DD/YYYY。

不過，在此範例中，不變的資料集會載入到應用程式中。會透過圖表物件中的量值計算過期天數的值。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
					
Overdue:
Load
*
Inline
[
cust_id,book_id,due_date
1,4,01/01/2021,
2,24,01/10/2021,
6,173,01/31/2021,
31,281,02/01/2021,
86,265,02/10/2021,
52,465,06/30/2021,
26,537,07/26/2021,
92,275,10/31/2021,
27,455,11/01/2021,
27,46,12/31/2021
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `due_date`

* `book_id`

建立下列量值：

`=Floor(GMT() – due_date)`

結果表格

| due\_date | book\_id | =Floor(GMT()-due\_date) |
| --- | --- | --- |
| 01/01/2021 | 4 | 455 |
| 01/10/2021 | 24 | 446 |
| 01/31/2021 | 173 | 425 |
| 02/01/2021 | 281 | 424 |
| 02/10/2021 | 265 | 415 |
| 06/30/2021 | 465 | 275 |
| 07/26/2021 | 537 | 249 |
| 10/31/2021 | 275 | 152 |
| 11/01/2021 | 455 | 151 |
| 12/31/2021 | 46 | 91 |

`days_overdue` 欄位中的值的計算方式是使用 `GMT()` 函數尋找目前格林威治標準時間與原始到期日期之間的差異。為了僅計算天數，會使用 `Floor()` 函數，將結果四捨五入為最接近的整數。