timestamp9
纳秒分辨率时间戳
仓库
optiver/timestamp9
https://github.com/optiver/timestamp9
源码
timestamp9-timestamp9-1.4.0.tar.gz
timestamp9-timestamp9-1.4.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
timestamp9 | 1.4.0 | TYPE | MIT | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3890 | timestamp9 | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | prefix semver unit pgpdf pglite_fusion md5hash asn1oid roaringbitmap |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | MIXED | 1.4.0 | 1817161514 | timestamp9 | - |
| RPM | PGDG | 1.4.0 | 1817161514 | timestamp9_$v | - |
| DEB | PIGSTY | 1.4.0 | 1817161514 | postgresql-$v-timestamp9 | - |
构建
您可以使用 pig build 命令构建 timestamp9 扩展的 DEB 包:
pig build pkg timestamp9 # 构建 DEB 包
安装
您可以直接安装 timestamp9 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install timestamp9; # 当前活跃 PG 版本安装
pig ext install -y timestamp9 -v 18 # PG 18
pig ext install -y timestamp9 -v 17 # PG 17
pig ext install -y timestamp9 -v 16 # PG 16
pig ext install -y timestamp9 -v 15 # PG 15
pig ext install -y timestamp9 -v 14 # PG 14
dnf install -y timestamp9_18 # PG 18
dnf install -y timestamp9_17 # PG 17
dnf install -y timestamp9_16 # PG 16
dnf install -y timestamp9_15 # PG 15
dnf install -y timestamp9_14 # PG 14
apt install -y postgresql-18-timestamp9 # PG 18
apt install -y postgresql-17-timestamp9 # PG 17
apt install -y postgresql-16-timestamp9 # PG 16
apt install -y postgresql-15-timestamp9 # PG 15
apt install -y postgresql-14-timestamp9 # PG 14
创建扩展:
CREATE EXTENSION timestamp9;
用法
timestamp9 扩展提供了纳秒精度的时间戳类型,以 64 位整数存储(自 UNIX 纪元以来的纳秒数)。
CREATE EXTENSION timestamp9;
数据类型
timestamp9 类型支持从 1970-01-01 到 2262-04-12 的时间戳,精度为纳秒。
输入格式
-- 标准 PostgreSQL 格式
SELECT '2019-09-19 08:30:05'::timestamp9;
-- 带时区的完整纳秒精度
SELECT '2019-09-19 08:30:05.123456789 +0200'::timestamp9;
-- 从 bigint 转换(自纪元以来的纳秒数)
SELECT 1568878205123456789::bigint::timestamp9;
类型转换
- 与
timestamp和timestamptz之间的相互转换 - 与
date之间的相互转换
转换过程中保留纳秒精度。
运算符
-- 比较
SELECT '2019-09-19'::timestamp9 > '2019-09-18'::timestamp9; -- true
-- 与 interval 的算术运算
SELECT '2019-09-19 23:00:00.123456789'::timestamp9 + interval '1 day';
-- 减法
SELECT '2019-09-20'::timestamp9 - '2019-09-19'::timestamp9;
函数
SELECT greatest('2019-09-19'::timestamp9, '2019-09-20'::timestamp9);
索引支持
支持 Btree 和 Hash 索引。