- 类别:
TRUNCATE、TRUNC¶
将 DATE、TIME 或 TIMESTAMP 值截断为指定的精度。例如,将时间戳截断到季度时,将返回对应于原始时间戳季度第一天午夜的时间戳。
该函数通过反转两个实参,为 DATE_TRUNC 提供了另一种语法。
TRUNCATE 和 TRUNC 函数为同义函数。
截断与提取不同。例如:
使用此函数将时间戳截断为季度,会返回与输入时间戳所在季度第一天的午夜相对应的时间戳。
使用 EXTRACT 函数从时间戳中提取季度日期部分,会返回时间戳中年份的季度编号。
备注
TRUNC 过载。它也可以与数值配合使用,来 减少有效数字位的数量,例如将小数值截断为整数。数字 TRUNC 有一个必要参数和一个可选参数。日期/时间 TRUNC 有两个必要参数。
- 选择:
- 另请参阅:
语法¶
实参¶
date_or_time_expr此实参的值必须是日期、时间或时间戳。
date_or_time_part此实参必须是 支持的日期和时间部分 中列出的值之一。
返回¶
返回值与输入值的类型相同。
例如,如果输入值为 TIMESTAMP,则返回值为 TIMESTAMP。
使用说明¶
当
date_or_time_part为week(或其任何变体)时,输出由 WEEK_START 会话参数控制。有关更多详细信息(包括示例),请参阅 日历周和工作日。对于 TIME 值,您不能指定超出 TIME 类型范围的
date_or_time_part。例如,您可以将 TIMESTAMP 值截断为day、week、year等,因为 TIMESTAMP 类型使用所需精度对日期/时间进行编码。然而,尝试将 TIME 值截断为day、week、year等都会导致出错。
示例¶
以下示例演示了针对日期/时间值的 TRUNC 或 TRUNCATE 函数。有关截断数值的示例,请参阅 TRUNC 的数字形式。
函数示例使用了下表中的数据:
以下示例显示了日期截断。在所有情况下,返回值的数据类型与输入值相同,但被截断的部分(如小数秒)为零。
将 DATE 值截断为年、月、日:
将 TIME 值截断为分钟:
将 TIMESTAMP 值截断为小时、分钟和秒。
TRUNC 函数与 EXTRACT 函数形成鲜明对比: