我知道对于数据类型间隔,可以使用extract(来自间隔的纪元)来获得间隔的长度(以秒为单位)。它的小数精度似乎是5,因为我有一个时间戳,一直到精确到数百纳秒(导入到表时截断到微秒),但是当我使用extract时,它会返回5位小数精度) 在上面。因此,如果我将提取(epoch)的返回值乘以100万,我只能获得精确到几十微秒。是否有任何功能可以将间隔转换为微秒,或者将秒数乘以我的最佳选项?
答案 0 :(得分:2)
extract
返回double precision floating-point
,其精度因平台而异。
双精度类型的范围通常为1E-307到1E + 308,精度至少为15位。
select extract(epoch from now());
date_part
------------------
1468585846.00179
extra_float_digits设置控制浮点值转换为输出文本时包含的额外有效数字的数量
set extra_float_digits = 3;
select extract(epoch from now());
date_part
---------------------
1468586127.88283896
extra_float_digits
可以在会话中设置,如database level或server level