uuid_extract_timestamp() 是一个用于从版本1 UUID 中提取时间戳的系统函数。
uuid_extract_timestamp() 在 PostgreSQL 17 中添加。
用法
uuid_extract_timestamp (uuid) →timestamp with time zone
如果提供的 UUID 不是版本 1 (或从 PostgreSQL 18 开始) 版本 7,则返回 NULL。
变更历史
- PostgreSQL 18
- 支持
UUID版本7(提交 78c5e141)
- 支持
- PostgreSQL 17
- 添加 (提交 794f10f6)
示例
使用 uuid-ossp 扩展中的 uuid_generate_v1() 函数来演示 uuid_extract_timestamp() 的基本用法
postgres=# SELECT uuid_extract_timestamp( uuid_generate_v1() );
uuid_extract_timestamp
-------------------------------
2024-03-20 15:25:01.989091+09
(1 row)
对于版本 1 和 7 以外的 UUID 版本,将返回 NULL
postgres=# SELECT uuid_extract_timestamp( gen_random_uuid() ) IS NULL; ?column? ---------- t (1 row) postgres=# SELECT uuid_extract_timestamp( uuid_generate_v3 ( uuid_ns_oid(), 'foo') ) IS NULL; ?column? ---------- t (1 row)
参考资料
- PostgreSQL 文档: UUID 函数
