将varchar转换为货币

时间:2016-10-26 04:27:27

标签: mysql sql varchar currency

CREATE TABLE [dbo].[tblBSP](
    [OS_PESO] [varchar](100) NULL
) ON [PRIMARY]
GO

我的表名为tblBSP,列OS_PESO。现在,BULK INSERT的值必须为OS_PESOOS_PESO列的值如下所示:

58,083.15 
2,000,000.00 
(2,004.84)

我有以下错误:

  

无法将char值转换为money。 char值的语法不正确。

我见过类似这些的问题,我试过这些,但似乎没有用。

update tblBSP
set OS_PESO = (select convert(money,replace(OS_PESO,',','')))

--or 

update tblBSP
set OS_PESO = (select CAST(isnull(OS_PESO,0) as money))

--or

update tblBSP
set OS_PESO = (SELECT CONVERT(varchar, CONVERT(money, OS_PESO), 1 ))

感谢。 ^^

2 个答案:

答案 0 :(得分:0)

您可以使用此...进行投射

更新tblBSP 设置OS_PESO =(选择CAST(OS_PESO AS十进制(18,2)))

答案 1 :(得分:0)

由于字符串中的逗号(',')而发生此错误。

尝试以下:

CREATE TABLE tblBSP
(
    `OS_PESO` varchar(100)

);

insert into tblBSP(`OS_PESO`)Values
('58,083.15');

insert into tblBSP(`OS_PESO`)Values
('2,000,000.00');

update tblBSP set `OS_PESO`=cast(replace(`OS_PESO`,',','') as decimal(15,2)) 

select *from tblBSP

<强>输出:

enter image description here

SQlFiddle