将PostgreSQL列从整数改为十进制

Oli*_*Oli 15 postgresql

感谢最后一分钟客户端请求,我们数据库中的整数字段现在需要是一个十进制,到两点.23应该成为一个值23.00.

有没有一种很好的方法可以转换表并转换数据?

我会坦然承认,之前我没有用PostgreSQL做过这样的事情所以请温柔地对待我.

Szy*_*ski 26

这样的事情应该有效:

alter table t alter column c type decimal(10,2);
Run Code Online (Sandbox Code Playgroud)

编辑:

正如@Oli在评论中所述; 第一个数字是数字(不包括点)的整个长度,因此为MAXVAL (10,2)99999999.99

  • 我现在看到第一个数字是数字的整个长度(不包括点)所以`(10,2)`的maxval将是'99999999.99` (6认同)