TRUNC

返回完全截断的 expression 值(接近零)。提供 places 实参可将表达式截断为您指定的小数位数。

行为类型

不可变

语法

TRUNC ( expression [ , places ] )

参数

expression
NUMERICDOUBLE PRECISION (FLOAT) 类型的表达式。
places
INTEGER 值。当 places 为正整数时,Vertica 可对小数点右侧的值进行截断。当 places 为负整数时,Vertica 可对小数点左侧的值进行截断。

注意

TRUNCNUMERIC 数据类型配合使用,则返回 NUMERIC 并保留原始精度和标度。

=> SELECT TRUNC(3.5);
 TRUNC
-------
   3.0
(1 row)

示例

=> SELECT TRUNC(42.8);
 TRUNC
-------
  42.0
(1 row)
=> SELECT TRUNC(42.4382, 2);
  TRUNC
---------
 42.4300
(1 row)

以下示例创建了一个包含两列的表,添加了一行值,显示小数点左侧和右侧的截断示例。

=> CREATE TABLE sampletrunc (truncol1 NUMERIC, truncol2 NUMERIC);
CREATE TABLE

=> INSERT INTO sampletrunc VALUES (1234567, .1234567);
 OUTPUT
--------
      1
(1 row)

=> SELECT TRUNC(truncol1,-3) AS p3, TRUNC(truncol1,-4) AS p4, TRUNC(truncol1,-5) AS p5 FROM sampletrunc;

           p3            |           p4            |           p5
-------------------------+-------------------------+-------------------------
 1234000.000000000000000 | 1230000.000000000000000 | 1200000.000000000000000
(1 row)

=> SELECT TRUNC(truncol2,3) AS p3, TRUNC(truncol2,4) AS p4, TRUNC(truncol2,5) AS p5 FROM sampletrunc;

        p3         |        p4         |        p5
-------------------+-------------------+-------------------
 0.123000000000000 | 0.123400000000000 | 0.123450000000000
(1 row)