类型varchar的算术溢出错误

时间:2015-11-25 15:41:52

标签: sql-server

我有一个变量OUTL_New_$ = 4055166.88。我使用下面的sql代码将值存储在表中。

'$ '+substring(parsename(convert(varchar,convert(money,cast(OUTL_New_$ as int)),1),2),1,13)

但是,它显示如下错误:

Arithmetic overflow error for type varchar, value = 4055166.880000

有人可以帮我理解为什么会出现这个错误吗?

2 个答案:

答案 0 :(得分:1)

如果您将@ OUTL_New_ $声明为NVARCHAR, 那么你必须把它作为小数(18,3),而不是INT:

Open query in a New Page

答案 1 :(得分:0)

SELECT '$ ' + SUBSTRING(PARSENAME(CONVERT(VARCHAR, CONVERT(MONEY, CAST(4055166.88 AS INT)), 1), 2), 1, 13)

SELECT FORMAT(CAST(4055166.88 AS INT), '$ ###,##,####')

结果 -

$ 4,055,166