在PostgreSQL中将间隔转换为微秒作为数字类型?

时间:2016-07-15 04:03:56

标签: postgresql

我知道对于数据类型间隔,可以使用extract(来自间隔的纪元)来获得间隔的长度(以秒为单位)。它的小数精度似乎是5,因为我有一个时间戳,一直到精确到数百纳秒(导入到表时截断到微秒),但是当我使用extract时,它会返回5位小数精度) 在上面。因此,如果我将提取(epoch)的返回值乘以100万,我只能获得精确到几十微秒。是否有任何功能可以将间隔转换为微秒,或者将秒数乘以我的最佳选项?

1 个答案:

答案 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 levelserver level