TRUNC 函數 - Amazon Redshift

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

TRUNC 函數

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

TRUNC 函數可以選擇包含第二個參數以整數,指出四捨五入的小數位數 (任一方向)。當您不提供第二個參數時,函數將舍入到最接近的整數。當第二個參數>n,函數將舍入到最接近的數字,並使用>n精度的小數位。此函數也可截斷時間戳記並傳回日期。

Syntax (語法)

TRUNC (number [ , integer ] | timestamp )

引數

number

評估為數字的數字或表達式。它可以是十進制類型、FLOAT8 或超級類型。Amazon Redshift 可以根據隱含轉換規則轉換其他資料類型。

整數 (選用)

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

timestamp

此函數也可從時間戳記傳回日期。(返回一個時間戳值00:00:00作為時間,會將函數結果轉換為時間戳記。)

傳回類型

TRUNC 傳回與第一個輸入引數相同的資料類型。如果是時間戳記,TRUNC 會傳回日期。

當輸入為 SUPER 類型時,輸出保留與輸入相同的動態類型,而靜態類型保持 SUPER 類型。當 SUPER 的動態類型不是數字時,Amazon Redshift 返回空值。

範例

截斷給定銷售交易的已付佣金。

select commission, trunc(commission) from sales where salesid=784; commission | trunc -----------+------- 111.15 | 111 (1 row)

將同一個佣金值截斷至第一位小數。

select commission, trunc(commission,1) from sales where salesid=784; commission | trunc -----------+------- 111.15 | 111.1 (1 row)

以第二個引數的負值截斷佣金;111.15 捨去到 110

select commission, trunc(commission,-1) from sales where salesid=784; commission | trunc -----------+------- 111.15 | 110 (1 row)

傳回從 SYSDATE 函數 (其傳回時間戳記) 的結果之日期部分:

select sysdate; timestamp ---------------------------- 2011-07-21 10:32:38.248109 (1 row) select trunc(sysdate); trunc ------------ 2011-07-21 (1 row)

要套用到 TIMESTAMP 欄位的 TRUNC 函數。傳回類型為日期。

select trunc(starttime) from event order by eventid limit 1; trunc ------------ 2008-01-25 (1 row)