在我的SQL Server上的存储过程中,我试图将varchar列中的值转换为float格式。 varchar列中的值是在开头带有符号的数字和'。'在小数之前。
示例:'+0000000000000044.09'或'-0000000000114995.61'
如果我试试这个: convert(float,mystring),它不起作用。 我有:
将数据类型varchar转换为float
时出错
这种转换是否可行? 或者是否有另一种方法来转换带有符号和'。'的字符串。进入一个浮动?
答案 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)也应该工作正常。我建议检查一下你的数据。