Skip to content

PostgreSQL trunc() 函数 ​

PostgreSQL trunc() 函数将指定的数字截断到指定的精度并返回结果。

trunc() 语法 ​

这里是 PostgreSQL trunc() 函数的语法:

sql
trunc(numeric_value) -> integer

或者

sql
trunc(numeric_value, scale) -> numeric

参数 ​

  • numeric_value

    必需的。 一个数字,它可以是正数、负数、或者零,它可以是整数,也可以是小数。

  • scale

    可选的。 一个表示数字精度的整数。默认为 0。

返回值 ​

PostgreSQL trunc() 函数将指定的数字截断到指定的精度并返回结果。

如果参数 scale 位正整数,trunc() 函数将截断指定数字的小数部分到指定的位数。

如果参数 scale 位负整数,trunc() 函数将截断所有的小数位,并将整数部分的倒数 |scale| 位数字截断为 0。

如果参数为 NULL,trunc() 函数将返回 NULL。

如果您提供了一个不是数字类型的参数,PostgreSQL 将给出一个错误。

trunc() 示例 ​

下面的示例演示了如何使用 trunc() 函数将数字截断为整数。

sql
SELECT
    trunc(10.11) AS "trunc(10.11)",
    trunc(10.99) AS "trunc(10.99)";
sql
 trunc(10.11) | trunc(10.99)
--------------+--------------
           10 |           10

下面的示例演示了如何使用 trunc() 函数将数字截断为 2 位小数。

sql
SELECT
    trunc(10.1212, 2) AS "trunc(10.1212, 2)",
    trunc(10.9696, 2) AS "trunc(10.9696, 2)";
sql
 trunc(10.1212, 2) | trunc(10.9696, 2)
-------------------+-------------------
             10.12 |             10.96

如果参数 scale 位负整数,trunc() 函数将截断所有的小数位,并将整数部分的倒数 |scale| 位数字截断为 0。例如:

sql
SELECT
    trunc(1234, -2) AS "trunc(1234, -2)",
    trunc(1234.0, -2) AS "trunc(1234.0, -2)",
    trunc(1234.567, -2) AS "trunc(1234.567, -2)";
sql
 trunc(1234, -2) | trunc(1234.0, -2) | trunc(1234.567, -2)
-----------------+-------------------+---------------------
            1200 |              1200 |                1200