TRUNC 函数 - Amazon Redshift

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 | +------------+-------+