PostgreSQL date_part() 函数

PostgreSQL date_part() 函数从指定的时间戳或者时间间隔中抽取指定的部分并返回。

date_part() 语法

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

date_part(field TEXT, source TIMESTAMP) -> DOUBLE PRECISION
date_part(field TEXT, source DATE) -> DOUBLE PRECISION
date_part(field TEXT, source TIME) -> DOUBLE PRECISION
date_part(field TEXT, source INTERVAL) -> DOUBLE PRECISION

参数

field

必需的。 它是一个字符串表示要抽取的部分。您可以是使用以下值:

  • century: 世纪
  • day: 天
  • decade: 十年,即年份除以 10
  • dow: 星期几。 星期天为 0,星期六为 6。
  • doy: 一年中的某一天 (1–365/366)
  • epoch: 对于 TIMESTAMP 值来说,返回 Unix 时间戳。对于间隔值来说,返回总的秒数。
  • hour: 小时 0-23
  • isodow: 星期几。 星期一为 1,星期天为 7。
  • isoyear: 日期所在的 ISO 8601 周编号年份(不适用于间隔)
  • julian: 与日期或时间戳对应的儒略历日期(不适用于间隔)
  • microseconds: 秒乘以 1 000 000
  • millennium: 千年期
  • milliseconds: 秒乘以 1 000
  • minute: 分钟
  • month: 对于 TIMESTAMP 值来说,返回一年中的月份 1 - 12;对于间隔值来说,返回月数 0 - 11。
  • quarter: 季节 1-4
  • second: 秒
  • timezone: 时区偏移量,以秒为单位
  • timezone_hour: 时区偏移量的小时部分
  • timezone_minute: 时区偏移量的分钟部分
  • week: 一年中的 ISO 8601 周编号
  • year: 年份
source

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

返回值

PostgreSQL date_part() 函数返回从 source 返回通过字符串 field 指定的部分。

date_part() 示例

你能使用 date_part() 函数返回一个时间戳值所在的世纪。如下:

SELECT date_part('century', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
        21

你能使用 date_part() 函数获得一个时间戳值的天字段。如下:

SELECT date_part('day', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
        16

你能使用 date_part() 函数获得一个间隔值的中的天数。如下:

SELECT date_part('day', INTERVAL '2 days 10 minutes');
 date_part
-----------
         2

你能使用 date_part() 函数获得一个时间戳值的 decade 字段。如下:

SELECT date_part('decade', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
       202

你能使用 date_part() 函数获得一个时间戳值是星期几(0-6 表示星期天到星期六)。如下:

SELECT date_part('dow', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
         1

你能使用 date_part() 函数获得一个时间戳值是一年中的第几天。如下:

SELECT date_part('doy', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
       136

你能使用 date_part() 函数将一个时间戳值转为 Unix 时间戳。如下:

SELECT date_part('epoch', TIMESTAMP '2022-05-16 12:41:13.662522');
     date_part
-------------------
 1652694073.662522

你能使用 date_part() 函数获得一个时间戳值中的小时部分。如下:

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

你能使用 date_part() 函数获得一个时间戳值是星期几(1-7 表示星期一到星期天)。如下:

SELECT date_part('isodow', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
         1

你能使用 date_part() 函数获得一个时间戳值落在 ISO 8601 周编号年分。如下:

SELECT date_part('isoyear', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
      2022

你能使用 date_part() 函数获得一个时间戳值对应的儒略日期。如下:

SELECT date_part('julian', TIMESTAMP '2022-05-16 12:41:13.662522');
     date_part
-------------------
 2459716.528630353

你能使用 date_part() 函数将时间戳值中的全秒转为微秒。如下:

SELECT date_part('microseconds', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
  13662522

你能使用 date_part() 函数获得一个时间戳值所处的千年期。如下:

SELECT date_part('millennium', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
         3

你能使用 date_part() 函数将时间戳值中的全秒转为毫秒。如下:

SELECT date_part('milliseconds', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
 13662.522

你能使用 date_part() 函数获得一个时间戳值中的分钟部分。如下:

SELECT date_part('minute', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
        41

你能使用 date_part() 函数获得一个时间戳值中的月份部分。如下:

SELECT date_part('month', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
         5

你能使用 date_part() 函数获得一个时间戳值中的季节部分。如下:

SELECT date_part('quarter', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
         2

你能使用 date_part() 函数获得一个时间戳值中的秒部分。如下:

SELECT date_part('second', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
 13.662522

你能使用 date_part() 函数获得一个时间戳值位于一年中的第几周。如下:

SELECT date_part('week', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
        20

你能使用 date_part() 函数获得一个时间戳值中的年份部分。如下:

SELECT date_part('year', TIMESTAMP '2022-05-16 12:41:13.662522');
 date_part
-----------
      2022