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

TRUNC 函数

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

TRUNC 函数可以选择性地以 INTEGER 形式包含另一个参数,以指示在任意方向舍入到的小数位数。当您不提供第二个参数时,函数会舍入到最接近的整数。指定第二个参数 integer 时,函数将舍入为最接近的数值,其中精度为 integer 个小数位。

这个函数也可以截断 TIMESTAMP 并返回 DATE。有关更多信息,请参阅TRUNC 函数

语法

TRUNC(number [ , integer ])

参数

number

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

integer

(可选)一个 INTEGER,指示精度在任意方向的小数位数。如果未提供 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 | +------------+-------+