Los métodos CAST() y CONVERT() de SQL Server se pueden usar para convertir VARCHAR a INT. También veremos el enfoque más eficiente y seguro para transformar valores de un tipo de datos a otro.
EMITIR()
La función CAST() en SQL Server se usa para convertir o transformar un valor o una expresión de un tipo de datos a otro.
Sintaxis:
CAST ( expression AS target_type [ ( length ) ] )
Parámetros:
- expresión : cualquier valor de cualquier tipo que se convertirá.
- target_type : tipo de datos de destino al que se convertirá el valor. por ejemplo, INT, BIT, SQL_VARIANT, etc.
- longitud : parámetro opcional que especifica la longitud de target_type, la longitud predeterminada es 30.
Tomemos un ejemplo en el que se usa la función CAST() para convertir VARCHAR a INT.
Consulta:
SELECT CAST('1234' AS INT) AS Result;
Producción:
Convertir()
En SQL Server, la función CONVERT() se usa para convertir un valor de un tipo a otro. Convertir cualquier cosa implica cambiar su forma o valor.
Sintaxis:
SELECT CONVERT ( target_type ( length ), expression )
Parámetros :
- target_type : tipo de datos al que se convertirá la expresión, por ejemplo: INT, BIT, SQL_VARIANT, etc.
- longitud : proporciona la longitud de target_type. La longitud no es obligatoria. La longitud predeterminada se establece en 30.
- expresión : la expresión es cualquier cosa que se convertirá.
En el siguiente ejemplo, la función CONVERT() se usa para convertir VARCHAR a INT.
Consulta:
SELECT CONVERT(INT,'5678') AS Result;
Ahora analicemos un enfoque más eficiente para convertir los valores de un tipo de datos a otro utilizando las funciones TRY_CAST() y TRY_CONVERT() de SQL Server:
TRY_CAST()
La función TRY_CAST() intenta convertir el valor de entrada en un valor del tipo de datos dado. Si la conversión tiene éxito, devuelve el valor de los datos proporcionados; de lo contrario, devuelve NULL. Sin embargo, si solicita una conversión que no es válida, el método TRY_CAST() devolverá un error.
Sintaxis:
TRY_CAST ( expression AS data_type [ ( length ) ] )
Parámetros utilizados:
- data_type: tipo de datos válido en el que la función convertirá la expresión.
- expresión: Valor a emitir.
Consulta:
SELECT TRY_CAST('1234' as INT) as Result;
Consulta:
SELECT TRY_CAST('1234abc' as INT) as Result;
INTENTAR_CONVERTIR()
El método TRY_CONVERT() intenta convertir el valor que se le proporciona al tipo de datos especificado. Si la conversión tiene éxito, devuelve el valor como los datos proporcionados; de lo contrario, devuelve NULL. Si solicita una conversión que está explícitamente prohibida, el método TRY CONVERT() devolverá un error.
Sintaxis:
TRY_CONVERT ( data_type[(length)], expression [,style])
Parámetros utilizados:
- data_type: tipo de datos válido en el que la función convertirá la expresión.
- expresión: Valor a emitir.
- estilo: es un entero proporcionado que especifica cómo la función traducirá la expresión.
Consulta:
SELECT TRY_CONVERT( INT ,'5678') as Result;
Consulta:
SELECT TRY_CONVERT( INT ,'56abc') as Result;