TRUNC函數 - Amazon Redshift

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

TRUNC函數

TRUNC函數會將數字截斷為前一個整數或小數。

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

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

語法

TRUNC(number [ , integer ])

引數

number

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

integer

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

傳回類型

TRUNC傳回與輸入數字相同的資料類型。

當輸入為 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 | +------------+-------+