Postgresql中的时间戳数据类型毫秒数字

monwx1rj  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(495)

我有一个表dbo。测试在sql server中,此表包含2列Id和createdat。
Createdat列的数据类型是datetime 2,它的值包含一个7位毫秒的日期时间。(例如:'2023-08-09 15:44:30.3196369')。
我在Postregsql中有相同的表,日期列数据类型是timestamp,但timestamp只接受6位毫秒。
Postgresql中的日期列如何接受超过6位的毫秒数?
我试图在这个链接https://github.com/optiver/timestamp9中使用扩展,但它只是实现了仅检索日期时间和时区

zd287kbt

zd287kbt1#

这是7位数的小数秒。MsSQLServer的datetime2保持精度低至100ns(0.1μs),PostgreSQL的timestamp只有1μs精度。
Postgresql中的日期列如何接受超过6位的毫秒数?
它可以接受更多,但它会四舍五入任何超过六。
为了完全准确地容纳数据,您必须将整个数据保存保存为不同的数据类型(bigint?)表示自epoch以来0.1μs的数量,或者单独保存额外精度:timestamp下至5位(最后截断以避免舍入),剩余2位为smallint。前者是timestamp9所做的。

相关问题