2012-02-15 42 views
2

在一個SQL Server數據庫中,我要更新一些字段,查詢(,是小數分隔符):SQL更新,串數字

UPDATE MyTbable 
SET 
Field1 = CAST('111,11' AS DEC(18,4)), 
Field2 = CAST('222,22' AS DEC(18,4)), 
Field3 = CAST('333,33' AS DEC(18,4)) 
WHERE Id = '1' 

我收到的錯誤: 錯誤的數據轉換鍵入varchar到數字。我試着跟投,同樣的問題

字段1,字段2和字段3是數字38,2

任何想法?

感謝,

+0

嘗試刪除字符串中的''' – Hadas 2012-02-15 11:17:47

回答

1

使用.,而不是,

UPDATE MyTbable 
SET 
    Field1 = CAST('111.11' AS DEC(18,4)), 
    Field2 = CAST('222.22' AS DEC(18,4)), 
    Field3 = CAST('333.33' AS DEC(18,4)) 
WHERE Id = '1' 

如果你想以後選擇這些值作爲字符串,並將逗號,然後做到這一點:

select replace(cast(Field1 as varchar(30)), '.',','), 
     replace(cast(Field2 as varchar(30)), '.',','), 
     replace(cast(Field2 as varchar(30)), '.',','), 
where Id = '1' 
+0

確定但是當我做一個select時,分隔符必須是逗號 – 2012-02-15 11:22:37

1

刪除逗號您查詢,如:

UPDATE MyTbable 
SET 
Field1 = CAST('11111' AS DEC(18,4)), 
Field2 = CAST('22222' AS DEC(18,4)), 
Field3 = CAST('33333' AS DEC(18,4)) 
WHERE Id = '1' 

,或者你可以rmove使用逗號替代:

replace('111,11',',','.') 
2

以逗號出來。

UPDATE MyTbable 
SET 
Field1 = CAST(REPLACE('111,11',',','.') AS DEC(18,4)), 
Field2 = CAST(REPLACE('222,22',',','.') AS DEC(18,4)), 
Field3 = CAST(REPLACE('333,33',',','.') AS DEC(18,4)) 
WHERE Id = '1'