CREATE TABLE [dbo].[tblBSP](
[OS_PESO] [varchar](100) NULL
) ON [PRIMARY]
GO
我的表名为tblBSP
,列OS_PESO
。现在,BULK INSERT
的值必须为OS_PESO
。 OS_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 ))
感谢。 ^^
答案 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
<强>输出:强>