自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 | +------------+-------+