TRUNC 函数 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

TRUNC 函数

TRUNC 函数将数字截断为前一个整数或小数。

TRUNC 函数可以选择性地以整数形式包含另一个参数,指示在任意方向舍入到的小数位数。当您不提供第二个参数时,函数会舍入到最接近的整数。当指定第二个参数 >n 时,函数将舍入为最接近的数字 >n 精度的小数位。此函数还会截断时间戳并返回日期。

Syntax

TRUNC (number [ , integer ] | timestamp )

Arguments

number

数字或计算结果为数字的表达式。它可以是 DECIMAL、FLOAT8 或 SUPER 类型。Amazon Redshift 可根据隐式转换规则转换其他数据类型。

integer(可选)

一个整数,指示精度在任意方向的小数位数。如果未提供整数,数字将作为整数截断;如果指定了整数,数字将截断到指定的小数位。SUPER 数据类型不支持此功能。

timestamp

该函数也可返回时间戳中的日期。(要返回以 00:00:00 作为时间的时间戳值,请将函数结果强制转换为时间戳。)

返回类型

TRUNC 返回与第一个输入参数的数据类型相同的数据类型。对于时间戳,TRUNC 将返回日期。

当输入为 SUPER 类型时,输出将保留与输入相同的动态类型,而静态类型仍为 SUPER 类型。当 SUPER 的动态类型不是数字时,Amazon Redshift 将返回一个 null 值。

Examples

截断为给定销售交易支付的佣金。

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)

将 TRUNC 函数应用于 TIMESTAMP 列。返回类型为日期。

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