

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# TRUNC 函數
<a name="r_TRUNC"></a>

TRUNC 函數將數字截斷為先前的整數或小數。

TRUNC 函數可以選擇包含第二個引數做為 `INTEGER`，表示四捨五入的小數位數 (任一方向)。當您未提供第二個引數時，函數會四捨五入為最接近的整數。指定第二個引數 *integer* 時，函數會捨入為具有 *integer* 小數位數的最接近的數字。

 這個函數也可以截斷 `TIMESTAMP` 並傳回 `DATE`。如需詳細資訊，請參閱[TRUNC 函數](r_TRUNC_date.md)。

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

```
TRUNC(number [ , integer ])
```

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

 *number*   
數字或評估為數字的運算式。它可以是 `DECIMAL`、`FLOAT8` 或 `SUPER` 類型。Amazon Redshift 可以根據隱含轉換規則轉換其他資料類型。

 *integer*  
(選用) `INTEGER`，表示精確度的小數位數 (任一方向)。如果未提供*整數*，數字會截斷為整數；如果指定*整數*，數字會截斷至指定的小數位數。不支援 `SUPER` 資料類型。

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

TRUNC 會傳回與輸入 *number* 相同的資料類型。

當輸入為 `SUPER` 類型時，輸出會保留與輸入相同的動態類型，而靜態類型仍然是 `SUPER` 類型。當 `SUPER` 的動態類型不是數字時，Amazon Redshift 會傳回 `NULL`。

## 範例
<a name="r_TRUNC-examples"></a>

下列部分範例使用 TICKIT 範例資料庫。如需詳細資訊，請參閱[範本資料庫](c_sampledb.md)。

若要截斷給定銷售交易的已付佣金，請使用下列範例。

```
SELECT commission, TRUNC(commission)
FROM sales WHERE salesid=784;

+------------+-------+
| commission | trunc |
+------------+-------+
|     111.15 |   111 |
+------------+-------+
```

若要將同一個佣金值截斷至第一位小數，請使用下列範例。

```
SELECT commission, TRUNC(commission,1)
FROM sales WHERE salesid=784;

+------------+-------+
| commission | trunc |
+------------+-------+
|     111.15 | 111.1 |
+------------+-------+
```

若要使用第二個引數的負值截斷佣金，請使用下列範例。請注意 `111.15` 向下捨入為 `110`。

```
SELECT commission, TRUNC(commission,-1)
FROM sales WHERE salesid=784;

+------------+-------+
| commission | trunc |
+------------+-------+
|     111.15 |   110 |
+------------+-------+
```