EXTRACT returns 数字而不是双精度
EXTRACT returns numeric instead double precision
我运行遇到一个问题:在本地数据库上,EXTRACT returns numeric,由于后端无法将其解析为int,导致错误。在生产数据库上,一切都运行良好,returns 双精度。在 sql 中,所有内容都是没有时区的时间戳类型。这种行为与什么有关?一些本地设置?
select EXTRACT(EPOCH FROM (finish_timestamp_p - answer_timestamp_p)) AS duration from ...
在 PostgreSQL v14 中,EXTRACT
的 return 类型从 double precision
更改为 numeric
。
我可以想到两个解决方案:
添加显式类型转换:
CAST (EXTRACT (....) AS integer)
使用 date_part
而不是 EXTRACT
,仍然 returns double precision
我运行遇到一个问题:在本地数据库上,EXTRACT returns numeric,由于后端无法将其解析为int,导致错误。在生产数据库上,一切都运行良好,returns 双精度。在 sql 中,所有内容都是没有时区的时间戳类型。这种行为与什么有关?一些本地设置?
select EXTRACT(EPOCH FROM (finish_timestamp_p - answer_timestamp_p)) AS duration from ...
在 PostgreSQL v14 中,EXTRACT
的 return 类型从 double precision
更改为 numeric
。
我可以想到两个解决方案:
添加显式类型转换:
CAST (EXTRACT (....) AS integer)
使用
date_part
而不是EXTRACT
,仍然 returnsdouble precision