

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# TRUNC 函数
<a name="TRUNC"></a>

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

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

## 语法
<a name="TRUNC-synopsis"></a>

```
TRUNC (number [ , integer ] |
timestamp )
```

## 参数
<a name="TRUNC-arguments"></a>

 * number*   
数字或计算结果为数字的表达式。它可以是十进制或 FLOAT8 类型。 AWS Clean Rooms 可以根据隐式转换规则转换其他数据类型。

 *integer*（可选）   
一个整数，指示精度在任意方向的小数位数。如果未提供整数，数字将作为整数截断；如果指定了整数，数字将截断到指定的小数位。

 *timestamp*   
该函数也可返回时间戳中的日期。（要返回以 `00:00:00` 作为时间的时间戳值，请将函数结果强制转换为时间戳。） 

## 返回类型
<a name="TRUNC-return-type"></a>

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

## 示例
<a name="TRUNC-examples"></a>

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

```
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)
```