来自日期的函数 extract() 返回双精度值

sim*_*mar 8 postgresql date-format functions

为什么 Postgres 函数从值extract()返回?double precisiondate

我能想象的唯一原因是,有一些语言环境使用日历(那些不是公历并由 Postgres 支持),以不同的方式计算日期/时间并可能返回浮点数。

gbn*_*gbn 5

因为返回值可以很大,也可以是十进制数。
双精度将接受范围广泛的值

查看其他数字类型,您只有小数会产生开销:您事先不知道返回比例或精度,因此它必须加宽

SELECT EXTRACT(SECOND FROM TIME '17:12:28.5');
Result: 28.5

SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40.12-08');
Result: 982384720.12
Run Code Online (Sandbox Code Playgroud)

查看PG 文档