在 Postgres 文档页面Date/Time Types,它说:
对于时间类型,当使用八字节整数存储时,p 的允许范围是从 0 到 6,或者当使用浮点数存储时,p 的允许范围是从 0 到 10。
我试图生成 SQL 语句time(p)
,什么时候p=10
?我总是得到
警告:TIME(10) 精度降低到允许的最大值,6
不管我是否将秒数置于浮动状态。我意识到我遗漏了一些非常明显的东西。请举一个p=10的例子。
在 Postgres 文档页面Date/Time Types,它说:
对于时间类型,当使用八字节整数存储时,p 的允许范围是从 0 到 6,或者当使用浮点数存储时,p 的允许范围是从 0 到 10。
我试图生成 SQL 语句time(p)
,什么时候p=10
?我总是得到
警告:TIME(10) 精度降低到允许的最大值,6
不管我是否将秒数置于浮动状态。我意识到我遗漏了一些非常明显的东西。请举一个p=10的例子。
从您提供的链接页面:
这就是说,为了将时间戳值存储为双精度浮点数(并允许精度高达 10),您需要使用该选项自己编译 Postgres。
它还表示精度不完全是 10,但它会根据值而变化,对于某些(非常高或非常低)值甚至可能小于 6。