Skip to content

PostgreSQL date_trunc() 函数 ​

PostgreSQL date_trunc() 函数将一个指定的时间戳或间隔值截断到指定的部分并返回。

date_trunc() 语法 ​

这是 PostgreSQL date_trunc() 函数的语法:

sql
date_trunc(field TEXT, source TIMESTAMP) -> TIMESTAMP
date_trunc(field TEXT, source TIMESTAMPTZ, time_zone TEXT) -> TIMESTAMPTZ
date_trunc(field TEXT, source INTERVAL) -> INTERVAL

参数 ​

  • field

    必需的。 它是一个字符串表示要截取到部分。您可以是使用以下值:microseconds``milliseconds``second``minute``hour``day``week``month``quarter``year``decade``century``millennium

  • source

    必需的。 它可以是时间戳、或者间隔类型的。

  • time_zone

    必需的。 时区。

返回值 ​

PostgreSQL date_trunc() 函数将一个指定的时间戳或间隔值截断到指定的部分并返回。

date_trunc() 示例 ​

下面的示例展示了如何使用 date_trunc() 函数将一个时间戳值截断到小时。如下:

sql
SELECT date_trunc('hour', TIMESTAMP '2022-05-16 12:41:13.662522');
sql
     date_trunc
---------------------
 2022-05-16 12:00:00

正如结果中展示的,小时和小时以上的部分被保留下来了,而分钟和秒的值变成了 0。

下面的示例展示了如何使用 date_trunc() 函数将一个时间戳值截断到年。如下:

sql
SELECT date_trunc('year', TIMESTAMP '2022-05-16 12:41:13.662522');
sql
     date_trunc
---------------------
 2022-01-01 00:00:00

您还可以使用 date_trunc() 函数截断一个间隔类型的值。比如:

sql
SELECT date_trunc('hour', INTERVAL '1 days 20:10:10');
sql
   date_trunc
----------------
 1 day 20:00:00