TRUNC 函數 - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

TRUNC 函數

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

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

這個函數也可以截斷 TIMESTAMP 並傳回 DATE。如需更多詳細資訊,請參閱 TRUNC 函數

語法

TRUNC(number [ , integer ])

引數

number

數字或評估為數字的運算式。它可以是 DECIMALFLOAT8SUPER 類型。Amazon Redshift 可以根據隱含轉換規則轉換其他資料類型。

integer

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

傳回類型

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

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

範例

下列部分範例使用 TICKIT 範例資料庫。如需更多詳細資訊,請參閱 範本資料庫

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

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 | +------------+-------+