date_part()
是一个用于检索日期或时间戳元素的系统函数,类似于 extract()
。
date_part()
在 PostgreSQL 6.1 中添加。
用法
date_part(field
text
,source
date
) → double precision
date_part(field
text
,source
interval
) → double precision
date_part(field
text
,source
timestamp
) → double precision
date_part(field
text
,source
timestamp with time zone
) → double precision
date_part()
基本上与 SQL 标准的 extract()
函数相同,最初旨在提供 Ingres 兼容性。从 PostgreSQL 14 开始,建议使用 extract()
,因为该函数现在返回 numeric
,而 date_part()
和 extract()
(在 PostgreSQL 14 之前)返回的双精度值在某些情况下可能会导致精度损失。
更改历史记录
- PostgreSQL 6.1
- 添加(提交 2ab34dfe)
示例
date_part()
的用法示例
postgres=# SELECT date_part('year', now()); date_part ----------- 2021 (1 row)
在 PostgreSQL 14 及更高版本中,date_part()
返回的值可能与 extract()
返回的值不同。
postgres=# WITH now AS ( SELECT NOW() AS now ) SELECT date_part('epoch', now.now), extract('epoch' FROM now.now) FROM now; date_part | extract ------------------+------------------- 1637913804.90921 | 1637913804.909210 (1 row)
参考文献
- PostgreSQL 文档: 日期/时间函数
- PostgreSQL 文档: EXTRACT,date_part