PostgreSQL:将列数据类型从字符可变修改为双精度



我在更改列数据类型方面遇到了一些问题,特别是从字符变化到双精度。这个修改的目的是让我可以在这个列上执行SUM和average。

我尝试的另一种方法是创建一个具有双倍精度的新列,并使用字符可变列更新该列,但到目前为止运气不佳。感谢任何帮助,谢谢。

假设该列中没有任何非法值(即无法转换为数字的值),则应使用以下方法:

alter table some_table 
   alter column some_column type decimal(10,2) using some_column::decimal;

我之所以使用decimal,是因为使用double几乎总是一个糟糕的选择,因为这是一种近似数据类型,不能保证你能得到与存储在其中的值相同的值。有关详细信息,请访问此网站:http://floating-point-gui.de/

最新更新