TRUNC 関数 - Amazon Redshift

TRUNC 関数

TRUNC 関数は、数値を前の整数または小数に切り捨てます。

TRUNC 関数にはオプションで、2 番目の引数として整数を指定できます。この整数は、四捨五入後の小数点以下または小数点以上の桁数を指定します。2 番目の引数を指定しない場合、関数は最も近い整数に四捨五入されます。2 番目の引数 >n が指定されている場合、関数は小数点以下 >n 桁以上の精度で最も近い数値に四捨五入されます。この関数は、タイムスタンプも切り捨て、日付を返します。

構文

TRUNC (number [ , integer ] | timestamp )

引数

number

数値、または数値に評価される式。DECIMAL、FLOAT8 または SUPER 型にすることができます。その他のデータ型は、暗黙的変換ルールに従って Amazon Redshift によって変換できます。

integer (オプション)

小数点以上または小数点以下の桁数を示す整数。この整数が指定されなかった場合は、数値が切り捨てられて整数になります。この整数が指定された場合は、数値が切り捨てられて、指定された桁数になります。これは SUPER データ型ではサポートされていません。

timestamp

この関数は、タイムスタンプから取得した日付も返します。(タイムスタンプの値 00:00:00 を時刻として返すには、関数の結果をタイムスタンプにキャストします。)

戻り型

TRUNC は、最初の入力引数と同じデータ型を返します。タイムスタンプの場合、TRUNC は日付を返します。

入力が SUPER 型の場合、出力は入力と同じ動的型を保持しますが、静的型は SUPER 型のままです。SUPER の動的型が数値でない場合、Amazon Redshift は null を返します。

特定の販売取引について支払われたコミッションを切り捨てます。

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

同じコミッション値を切り捨てて、小数点以下第 1 位までの数値にします。

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

コミッションを切り捨てますが、2 番目の引数に負の値が指定されています。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)

TRUNC 関数を TIMESTAMP 列に適用します。戻り型は日付です。

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