我在 Postgres 中有一个表被(错误地)定义为 double。 我需要将该字段转换为数字(6,4)。
转换完成后表中的值是否会四舍五入或截断?
例如,23.999999 会转换为 24 或 23.9999 吗?
尝试确定是否可以简单地更改列,或者是否还需要重新加载数据
感谢您的帮助!
从这里数字类型:
如果要存储的值的小数位数大于该列声明的小数位数,系统会将该值四舍五入到指定的小数位数。
所以:
select 23.999999::double precision::numeric(6,4); 24.0000
如果你想保留小数点右边的部分,那么:
select '23.999999'::numeric;
numeric
-----------
23.999999
--Or
select '23.999999'::numeric(8,6);
numeric
-----------
23.999999