用sql查询将字符串转换成int

如何在SQL Server 2005上使用SQL查询将一个字符串转换为整数?

解决办法

你可以使用CAST或CONVERT

SELECT CAST(MyVarcharCol AS INT) FROM Table

SELECT CONVERT(INT, MyVarcharCol) FROM Table
评论(4)

还要注意的是,当从数字字符串即'56.72'转换为INT时,你可能会遇到一个SQL错误。

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

为了解决这个问题,只需做两次转换,如下所示。

STRING -> NUMERIC -> INT

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

当把数据从TableA复制到TableB时,转换是隐性的,所以你不需要第二次转换(如果你乐意四舍五入到最近的INT)。

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

从SQL Server 2012开始,你可以使用TRY_PARSETRY_CONVERT

SELECT TRY_PARSE(MyVarcharCol as int)

SELECT TRY_CONVERT(int, MyVarcharCol)
评论(1)