TRUNC 函数返回以参数 fmt 为单位距离的离指定日期 date 最近的日期时间值,并且返回的日期值在 date 之前。

注意

与函数 ROUND 的区别为,TRUNC 返回的值必须是在 date 之前的离 date 最近的日期,ROUND 可以是 date 之前也可以是 date 之后的离它最近的日期值。

语法

  1. TRUNC (date,[fmt])

参数

参数

说明

date

DATE 数据类型。

fmt

指定了函数返回值与 date 的距离单位,以下表格列举了该参数的可取值,大小写不敏感。

fmt参数表

说明

j

默认值,最近 0 点日期。

day、dy、d

返回离指定日期最近的星期日。

month、mon、mm、rm

返回离指定日期最近的月的第一天日期。

q

返回离指定日期最近的季的日期。

yyyy、yyy、yy、y

多个 y 表示不同的精度,返回离指定日期最近的年的第一个日期。

cc、scc

返回离指定日期最近的世纪的初日期。

返回类型

DATE 数据类型。

示例

以下示例展示了用 TRUNC 计算距离 SYSDATE 最近的符合要求的日期值:

  1. SELECT SYSDATE 当时日期,
  2. TRUNC(SYSDATE) 今天日期,
  3. TRUNC(SYSDATE,'DAY') 本周星期日,
  4. TRUNC(SYSDATE,'MONTH') 本月初,
  5. TRUNC(SYSDATE,'Q') 本季初日期,
  6. TRUNC(SYSDATE,'YEAR') 本年初日期 FROM DUAL;

查询结果如下:

  1. +---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+
  2. | 当时日期 | 今天日期 | 本周星期日 | 本月初 | 本季初日期 | 本年初日期 |
  3. +---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+
  4. | 2020-03-08 22:41:46 | 2020-03-08 00:00:00 | 2020-03-08 00:00:00 | 2020-03-01 00:00:00 | 2020-01-01 00:00:00 | 2020-01-01 00:00:00 |
  5. +---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+

以下示例展示了在相同日期下用 ROUND 计算符合要求的最近日期的结果:

  1. SELECT SYSDATE 当时日期,
  2. ROUND(SYSDATE) 最近0点日期,
  3. ROUND(SYSDATE,'DAY') 最近星期日,
  4. ROUND(SYSDATE,'MONTH') 最近月初,
  5. ROUND(SYSDATE,'Q') 最近季初日期,
  6. ROUND(SYSDATE,'YEAR') 最近年初日期 FROM DUAL;

查询结果如下:

  1. +---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+
  2. | 当时日期 | 最近0点日期 | 最近星期日 | 最近月初 | 最近季初日期 | 最近年初日期 |
  3. +---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+
  4. | 2020-03-08 22:41:02 | 2020-03-09 00:00:00 | 2020-03-08 00:00:00 | 2020-03-01 00:00:00 | 2020-04-01 00:00:00 | 2020-01-01 00:00:00 |
  5. +---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+