T-SQL将字符串转换为float

时间:2017-07-28 10:15:45

标签: sql-server tsql stored-procedures type-conversion

在我的SQL Server上的存储过程中,我试图将varchar列中的值转换为float格式。 varchar列中的值是在开头带有符号的数字和'。'在小数之前。

示例:'+0000000000000044.09'或'-0000000000114995.61'

如果我试试这个: convert(float,mystring),它不起作用。 我有:

  

将数据类型varchar转换为float

时出错

这种转换是否可行? 或者是否有另一种方法来转换带有符号和'。'的字符串。进入一个浮动?

2 个答案:

答案 0 :(得分:0)

由于你的例子都有效,我猜你的表中某处有另一个值导致问题。在最新版本的SQL Server(2012年起)中,TRY_CONVERT函数可用于跟踪此类问题。

TRY_CONVERT不会在转换失败时抛出异常,而是返回NULL值,因此您可以找出导致问题的值,如下所示:

SELECT * FROM your_table WHERE TRY_CONVERT(FLOAT, your_column_name) IS NULL

如果返回任何行,那些行的问题值无法转换为FLOAT。

答案 1 :(得分:0)

您可以尝试使用CAST(mystring as float)TRY_CONVERT(float,mystring)。 转换(浮点数,mystring)也应该工作正常。我建议检查一下你的数据。