2009-04-08 65 views

回答

199

你可以使用CAST or CONVERT

SELECT CAST(MyVarcharCol AS INT) FROM Table 

SELECT CONVERT(INT, MyVarcharCol) FROM Table 
+3

當其中一個字段是非數字時,如何捕獲/防止發生異常?我會預計它將轉換爲0. – Chloe 2013-06-13 17:47:04

8

另外要注意,從數字串轉換即'56.72'時INT你可能遇到了一個SQL錯誤。

Conversion failed when converting the varchar value '56.72' to data type int. 

要解決這個問題只需要做兩個轉換如下:

STRING - >數字 - > INT

SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT) 

當從表A將數據複製到表B中,轉換是隱含的,所以你不需要第二次轉換(如果你快樂下舍到最近的INT):

INSERT INTO TableB (MyIntCol) 
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol] 
FROM TableA