PostgreSQL extract() 函数使用指南
PostgreSQL extract()
函数从指定的时间戳或者时间间隔中抽取指定的部分并返回。
extract()
语法
这是 PostgreSQL extract()
函数的语法:
extract(field FROM source TIMESTAMP) -> DOUBLE PRECISION
extract(field FROM source DATE) -> DOUBLE PRECISION
extract(field FROM source TIME) -> DOUBLE PRECISION
extract(field FROM source INTERVAL) -> DOUBLE PRECISION
参数
field
-
必需的。 它是表示要抽取的部分关键字。您可以是使用以下关键字:
CENTURY
: 世纪DAY
: 天DECADE
: 十年,即年份除以 10DOW
: 星期几。 星期天为 0,星期六为 6。DOY
: 一年中的某一天 (1–365/366)EPOCH
: 对于TIMESTAMP
值来说,返回 Unix 时间戳。对于间隔值来说,返回总的秒数。HOUR
: 小时 0-23ISODOW
: 星期几。 星期一为 1,星期天为 7。ISOYEAR
: 日期所在的 ISO 8601 周编号年份(不适用于间隔)JULIAN
: 与日期或时间戳对应的儒略历日期(不适用于间隔)MICROSECONDS
: 秒乘以 1 000 000MILLENNIUM
: 千年期MILLISECONDS
: 秒乘以 1 000MINUTE
: 分钟MONTH
: 对于TIMESTAMP
值来说,返回一年中的月份 1 - 12;对于间隔值来说,返回月数 0 - 11。QUARTER
: 季节 1-4SECOND
: 秒TIMEZONE
: 时区偏移量,以秒为单位TIMEZONE_HOUR
: 时区偏移量的小时部分TIMEZONE_MINUTE
: 时区偏移量的分钟部分WEEK
: 一年中的 ISO 8601 周编号YEAR
: 年份
source
-
必需的。 它可以是时间戳、日期、时间或者间隔类型的。
返回值
PostgreSQL extract()
函数返回一个从 source
返回通过字符串 field
指定的部分。
extract()
示例
你能使用 extract()
函数返回一个时间戳值所在的世纪。如下:
SELECT extract(CENTURY FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
21
你能使用 extract()
函数获得一个时间戳值的天字段。如下:
SELECT extract(DAY FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
16
你能使用 extract()
函数获得一个间隔值的中有几天。如下:
SELECT extract(DAY FROM INTERVAL '2 days 10 minutes');
extract
---------
2
你能使用 extract()
函数获得一个时间戳值的 DECADE
字段。如下:
SELECT extract(DECADE FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
202
你能使用 extract()
函数获得一个时间戳值是星期几(0-6 表示星期天到星期六)。如下:
SELECT extract(DOW FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
1
你能使用 extract()
函数获得一个时间戳值是一年中的第几天。如下:
SELECT extract(DOY FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
136
你能使用 extract()
函数将一个时间戳值转为 Unix 时间戳。如下:
SELECT extract(EPOCH FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
-------------------
1652704873.662522
你能使用 extract()
函数获得一个时间戳值中的小时部分。如下:
SELECT extract(HOUR FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
12
你能使用 extract()
函数获得一个时间戳值是星期几(1-7 表示星期一到星期天)。如下:
SELECT extract(ISODOW FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
1
你能使用 extract()
函数获得一个时间戳值落在 ISO 8601 周编号年分。如下:
SELECT extract(ISOYEAR FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
2022
你能使用 extract()
函数获得一个时间戳值对应的儒略日期。如下:
SELECT extract(JULIAN FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
------------------------------
2459716.52863035326388888889
你能使用 extract()
函数将时间戳值中的全秒转为微秒。如下:
SELECT extract(MICROSECONDS FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
----------
13662522
你能使用 extract()
函数获得一个时间戳值所处的千年期。如下:
SELECT extract(MILLENNIUM FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
3
你能使用 extract()
函数将时间戳值中的全秒转为毫秒。如下:
SELECT extract(MILLISECONDS FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
-----------
13662.522
你能使用 extract()
函数获得一个时间戳值中的分钟部分。如下:
SELECT extract(MINUTE FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
41
你能使用 extract()
函数获得一个时间戳值中的月份部分。如下:
SELECT extract(MONTH FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
5
你能使用 extract()
函数获得一个时间戳值中的季节部分。如下:
SELECT extract(QUARTER FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
2
你能使用 extract()
函数获得一个时间戳值中的秒部分。如下:
SELECT extract(SECOND FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
-----------
13.662522
你能使用 extract()
函数获得一个时间戳值位于一年中的第几周。如下:
SELECT extract(WEEK FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
20
你能使用 extract()
函数获得一个时间戳值中的年份部分。如下:
SELECT extract(YEAR FROM TIMESTAMP '2022-05-16 12:41:13.662522');
extract
---------
2022