本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
TRUNC 函數
TRUNC 函數將數字截斷為先前的整數或小數。
TRUNC 函數可以選擇包含第二個引數做為 INTEGER
,表示四捨五入的小數位數 (任一方向)。當您未提供第二個引數時,函數會四捨五入為最接近的整數。指定第二個引數 integer 時,函數會捨入為具有 integer 小數位數的最接近的數字。
這個函數也可以截斷 TIMESTAMP
並傳回 DATE
。如需詳細資訊,請參閱TRUNC 函數。
語法
TRUNC(number [ , integer ])
引數
- number
-
數字或評估為數字的運算式。它可以是
DECIMAL
、FLOAT8
或SUPER
類型。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 |
+------------+-------+