【发布时间】:2017-03-23 15:37:52
【问题描述】:
我正在将表 A 插入表 B。有问题的列看起来像 -$25.2。我首先替换了$ 并尝试了insert。遇到这个错误
将数据类型 nvarchar 转换为浮点数时出错。
然后我检查了
SELECT *
FROM B
WHERE ISNUMERIC([Col Name]) <> 1
没有返回任何结果。
这很奇怪。它应该返回一些东西。
接下来我应该检查什么?
我也尝试过类似的东西
CAST(REPLACE([Col Name], '-$', '') AS FLOAT)
【问题讨论】:
-
不要使用 ISNUMERIC()。 $, ., ,, -, + 都返回 1,即使没有数字。 Try_Parse 更好
-
@dfundako:
Try_Parse不幸的是在 SQL Server 2008 中不可用 ...这是 2012 中的一个新功能 ...
标签: sql-server database sql-server-2008 tsql type-conversion