Converter um texto para int usando a pesquisa sql

Como converter uma cadeia de caracteres para um inteiro usando a consulta SQL no servidor sql 2005?

Author: FiveO, 2009-04-08

3 answers

Pode utilizar moldado ou convertido:

SELECT CAST(MyVarcharCol AS INT) FROM Table

SELECT CONVERT(INT, MyVarcharCol) FROM Table
 221
Author: CMS, 2009-04-08 07:13:15

Também esteja ciente de que, ao converter de uma cadeia numérica ie '56.72' para INT, poderá deparar-se com um erro de SQL.

Conversion failed when converting the varchar value '56.72' to data type int.
Para contornar isto, faça dois convertidos da seguinte forma:

STRING - > NUMERIC - > INT

Ou

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

Ao copiar dados de TableA para TableB, a conversão está implícita, por isso não precisa do segundo converter (se estiver satisfeito arredondando para o INT mais próximo):

INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
 9
Author: Steven de Salas, 2015-04-08 07:50:19

A partir do SQL Server 2012, poderá usar TRY_PARSE ou TRY_CONVERT .

SELECT TRY_PARSE(MyVarcharCol as int)

SELECT TRY_CONVERT(int, MyVarcharCol)
 0
Author: Örjan Jämte, 2018-09-27 10:35:32