在SQL(Redshift)中将Scientific Notation转换为float(string to float)

时间:2016-08-24 00:31:06

标签: sql database casting amazon-redshift

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

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

我正在做的事情非常简单。我的表有两列:ID和速率(速率是我试图强制浮动的字符串科学记数法)。我在表格中添加了第3列,并尝试使用x:

的浮点表示填充第3列
UPDATE my_table
SET 3rd_column = CONVERT(FLOAT, 2nd_column)

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

此外,并非每个字符串浮点数都是科学记数法 - 有些是正常的浮动表示法。所以我想知道是否有内置函数可以处理所有这些。

谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明,对于浮点x的任何字符串表示,让我们说x ='0.00023'或x ='2.3e-04'

CONVERT(FLOAT,x)将x的数据类型从char(字符串)转换为float。

它不适合我的原因是我的字符串包含空格。