Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将Varchar格式化为货币的数字_Sql_Sql Server_Numbers - Fatal编程技术网

Sql 将Varchar格式化为货币的数字

Sql 将Varchar格式化为货币的数字,sql,sql-server,numbers,Sql,Sql Server,Numbers,我被varchar(50)中的一列卡住了,我想用货币格式。“金额”列的一些示例包括: -128,533.74 -55,156.11 77,120.24 我只是不断收到一个错误,说不能转换。使用标点和符号处理此问题的最佳方法是什么?您可以删除逗号,然后将值转换为数字数据类型: DECLARE @Number VARCHAR(50); SET @Number = '-128,533.74'; SELECT CONVERT(DECIMAL(16,4),REPLACE(@Number,',',''

我被
varchar(50)
中的一列卡住了,我想用货币格式。“金额”列的一些示例包括:

-128,533.74 
-55,156.11
77,120.24

我只是不断收到一个错误,说不能转换。使用标点和符号处理此问题的最佳方法是什么?

您可以删除逗号,然后将值转换为数字数据类型:

DECLARE @Number VARCHAR(50);
SET @Number = '-128,533.74';

SELECT CONVERT(DECIMAL(16,4),REPLACE(@Number,',',''))

您可以像这样
选择convert(money,'-55156.11')
转换为
货币
如果可能,您应该考虑将数据类型从varchar更改为数字数据类型。当您使用正确的数据类型时,这种类型的问题会自行解决。