extract()
是一个用于检索日期或时间值元素的系统函数。
extract()
一直存在于 PostgreSQL 中。
用法
PostgreSQL 14 及更高版本
extract ( field from timestamp ) → numeric
extract ( field from interval ) → numeric
PostgreSQL 13 及更早版本
extract ( field from timestamp ) → double precision
extract ( field from interval ) → double precision
更改历史记录
- PostgreSQL 14
- PostgreSQL 9.6
- 改进了无限日期时间的处理 (提交 647d87c5)
- 根据需要返回
infinity
或-infinity
,当请求的字段是单调递增的字段时,例如year
、epoch
- 在其他情况下返回
NULL
- 如果提供了无效的单位名称,则抛出
ERROR
- 根据需要返回
- 改进了无限日期时间的处理 (提交 647d87c5)
示例
extract()
的基本用法示例
postgres=# SELECT extract('year' FROM now()); extract --------- 2021 (1 row)
尝试提取无效的时区单位
postgres=# SELECT extract('foo' FROM now()); ERROR: timestamp with time zone units "foo" not recognized
参考文献
- PostgreSQL 文档: 日期/时间函数
- PostgreSQL 文档: EXTRACT,date_part