如何在SQL Server 2005上使用SQL查询将一个字符串转换为整数?
你可以使用CAST或CONVERT。
SELECT CAST(MyVarcharCol AS INT) FROM Table SELECT CONVERT(INT, MyVarcharCol) FROM Table
还要注意的是,当从数字字符串即'56.72'转换为INT时,你可能会遇到一个SQL错误。
'56.72'
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)
你可以使用CAST或CONVERT。
还要注意的是,当从数字字符串即
'56.72'
转换为INT时,你可能会遇到一个SQL错误。为了解决这个问题,只需做两次转换,如下所示。
STRING -> NUMERIC -> INT
或
当把数据从TableA复制到TableB时,转换是隐性的,所以你不需要第二次转换(如果你乐意四舍五入到最近的INT)。
从SQL Server 2012开始,你可以使用TRY_PARSE或TRY_CONVERT。