在postgresql中将float解析为int

时间:2015-02-23 18:18:35

标签: sql postgresql sql-update

我在postgresql DB中有一组数据,其中一列以float格式存储字符串数据,但现在我需要删除字符串的十进制组件。如何在BD控制台中使用 sql update 语句执行此操作?这可能吗?

例如:

"25.3" -> "25"

如果不可能,我该怎么办? 提前谢谢。

2 个答案:

答案 0 :(得分:6)

当然,您最好将文本列转换为数字到整数,以便考虑舍入,例如。

SELECT '25.3'::numeric::integer AS num1, '25.5'::numeric::integer AS num2

将分别返回25和26的整数。

如果您不关心该点后面的数字,则提到的floor():: integer函数或子字符串应该没问题。

答案 1 :(得分:0)

由于它是一个字符串,您可以使用字符串函数删除后十进制数字。 如果您不想将它们四舍五入,只需删除小数部分,然后使用 -

update table_name 
   set column_name = substring(column_name from 1 for position('.' in column_name)-1);

如果你想要四舍五入,那么你可以使用@mlinth提到的强制转换。