在SQL (Redshift)中将科学符号转换为浮点数(字符串到浮点数)



我正在尝试转换/强制转换一串科学记数法(例如,'9.62809864308e-05')到SQL中的浮点数。

我尝试了标准方法:CONVERT(FLOAT, x)其中x = '9.62809864308e-05',但它返回错误消息:未实现的固定字符转换函数- bpchar_float:2585.

我所做的很简单。我的表有2列:ID和rate (rate是我试图转换为float的字符串科学符号)。我在表中添加了第三列,并尝试用x的float表示填充第三列:

UPDATE my_table
SET 3rd_column = CONVERT(FLOAT, 2nd_column)

2nd_column的数据类型为CHAR(20)

此外,并不是每个字符串浮点数都是科学记数法——有些是普通浮点数法。所以我想知道是否有一个内置的功能可以处理所有这些。

谢谢!

对于浮点数x的任何字符串表示形式,我们设x = '0.00023'或x = '2.3e-04'

CONVERT(FLOAT, x)将x的数据类型从char (string)转换为FLOAT。

它不能为我工作的原因是我的字符串包含空格。