【发布时间】:2017-01-06 20:57:38
【问题描述】:
我收到的数据的时间戳低至纳秒(我们真正关心的)。有没有办法让 Postgres 时间戳达到纳秒?
【问题讨论】:
-
使用
bigint存储时间戳将为您提供足够的空间来记录纳秒。你的输入格式是什么样的?
标签: postgresql
我收到的数据的时间戳低至纳秒(我们真正关心的)。有没有办法让 Postgres 时间戳达到纳秒?
【问题讨论】:
bigint 存储时间戳将为您提供足够的空间来记录纳秒。你的输入格式是什么样的?
标签: postgresql
正如其他人所指出的,Postgres 并没有提供开箱即用的这种类型。但是,由于 Postgres 的开源特性,创建支持纳秒分辨率的扩展相对简单。不久前我遇到了类似的问题,并为 Postgres 创建了this timestamp9 extension。
它在内部将时间戳存储为 bigint,并将其定义为自 UNIX 纪元以来的纳秒数。它围绕它提供了一些方便的功能,使查看和操作时间戳变得容易。如果您可以忍受这些时间戳可能具有的有限时间范围,即 1970 年到 2262 年之间,那么这是一个很好的解决方案。
免责声明:我是扩展的作者
【讨论】:
不,但您可以将时间戳修剪到毫秒,并将纳秒部分存储到单独的列中。 您可以在两者上创建索引,并在视图或函数上返回您想要的纳秒时间戳,您甚至可以在您的函数上创建索引。
【讨论】:
一方面,documented resolution 是 1 微秒。
另一方面,PostgreSQL 是开源的。也许你可以拼凑一些东西来支持纳秒。
【讨论】: