在postgresql中将float解析为int

Parse float to int in postgresql

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

例如:

"25.3" -> "25"

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

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

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

如果你想四舍五入,那么你可以使用 @mlinth 提到的演员表。

您更适合将文本列转换为数字或整数,以便考虑到舍入,例如

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

这将分别 return 25 和 26 的整数。

如果您不关心点后面的数字,floor(column_name::numeric)::integer 函数或子字符串(如前所述)应该没问题。