我正在将表A插入表B.有问题的列看起来像-$25.2
。我首先替换了$
并尝试了insert
。出现此错误
然后我按检查将数据类型nvarchar转换为float时出错。
SELECT *
FROM B
WHERE ISNUMERIC([Col Name]) <> 1
并且没有返回任何结果。
这很奇怪。应该归还一些东西。
接下来我应该检查什么?
我也试过像
这样的东西CAST(REPLACE([Col Name], '-$', '') AS FLOAT)
答案 0 :(得分:0)
尝试使用此
DECLARE @Text nvarchar(100)
SET @Text = '-$1234.567'
SET @Text = Replace(@Text,'$', '')
Select CONVERT(float, @Text) AS ColumnValue
Select ABS(CONVERT(float, @Text)) AS ColumnValue
答案 1 :(得分:-2)
虽然'money'数据类型不适合进行计算,但在这种情况下,您可以将其用作中介。
declare @a nvarchar(10)
set @a = '-$25.2'
select
@a,
cast(cast(@a as money) as float)
只有当你的数据最多只有4个小数位时才使用它,否则你将失去转换的精确度。