SQL错误"传递给LEFT或SUBSTRING函数的无效长度参数"

时间:2014-10-09 13:35:02

标签: sql-server-2008

我收到sql错误

  

传递给LEFT或SUBSTRING函数的长度参数无效

它似乎来自返回值,长度为14个字符。

我们从Feed中获得的证券的未偿还股票价值。例如,195461597.62 M之类的值我们正在修剪.62 M并乘以1000,但是包含14个或更多字符的值会返回传递给LEFT的无效长度参数或SUBSTRING函数错误,但如果我从值中删除一个字符,它运行正常。

此字段设置为DATA_LENGTH为100,前端应用程序显示的值设置为30个字符,因此不确定哪些错误告诉我。

这是我的SQL:

select udf_char15, (convert(int,(substring(ltrim(rtrim(UDF_CHAR15)),0,len(UDF_CHAR15) - 5)))*1000)
from CSM_SECURITY_CUST
Where UDF_CHAR15 is not null

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用小数位置使其与长度无关;

select cast(left(UDF_CHAR15, charindex('.', UDF_CHAR15) - 1) as int)