

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# EXTRACT 函數
<a name="EXTRACT_function"></a>

EXTRACT 函數從 TIMESTAMP、TIMESTAMPTZ、TIME 或 TIMETZ 值傳回日期或時間部分。範例包括時間戳記中的日、月、年、時、分、秒、毫秒或微秒。

## 語法
<a name="EXTRACT_function-synopsis"></a>

```
EXTRACT(datepart FROM source)
```

## 引數
<a name="EXTRACT_function-arguments"></a>

 *datepart*   
要擷取的日期或時間的分欄，例如日、月、年、小時、分鐘、秒、毫秒或微秒。對於可能的值，請參閱 [日期或時間戳記函數的日期部分](Dateparts_for_datetime_functions.md)。

 *source*   
評估為 TIMESTAMP、TIMESTAMPTZ、TIME 或 TIMETZ 資料類型的欄或運算式。

## 傳回類型
<a name="EXTRACT_function-return-type"></a>

如果 *source* 值的計算結果為資料類型 TIMESTAMP、TIME 或 TIMETZ，則為 INTEGER。

如果 *source* 值計算為資料類型 TIMESTAMPTZ，則為 DOUBLE PRECISION。

## TIME 範例
<a name="EXTRACT_function-examples-time"></a>

下列範例資料表 TIME\$1TEST 有一個 TIME\$1VAL 欄 (類型為 TIME)，其中插入了三個值。

```
select time_val from time_test;
            
time_val
---------------------
20:00:00
00:00:00.5550
00:58:00
```

下列範例會擷取每個 time\$1val 的分鐘。

```
select extract(minute from time_val) as minutes from time_test;
            
minutes
-----------
         0
         0
         58
```

下列範例會擷取每個 time\$1val 中的小時數。

```
select extract(hour from time_val) as hours from time_test;
            
hours
-----------
         20
         0
         0
```