如何在SQL Server 2005上使用SQL查询将一个字符串转换为整数?
还要注意的是,当从数字字符串即'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
从SQL Server 2012开始,你可以使用TRY_PARSE或TRY_CONVERT。
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)