Guía completa para la conversión de tipos de datos utilizando la función SQL CAST

Cuando se trabaja con datos en SQL, puede ser necesario convertir valores entre diferentes tipos de datos. La función SQL CAST es una herramienta conveniente para realizar estas conversiones de tipos de datos de manera fácil y clara. Este artículo proporciona una explicación detallada de cómo usar la función CAST, incluyendo el uso básico, ejemplos específicos de conversión, ejemplos avanzados y métodos de manejo de errores. Mejore su conocimiento de la conversión de tipos de datos en SQL y apunte a crear consultas más avanzadas.

Índice

Sintaxis básica de la función CAST

La función CAST es una función estándar de SQL para convertir tipos de datos. La sintaxis básica es la siguiente:

CAST(expression AS target_data_type)

Aquí, expression es el valor o columna a convertir, y target_data_type es el tipo de dato objetivo. Por ejemplo, para convertir una cadena a un entero, puede usar la siguiente consulta:

SELECT CAST('123' AS INT);

Esta consulta convierte la cadena '123' a un entero y devuelve el valor numérico 123.

Ejemplos de conversión de tipos de datos

A continuación, se presentan algunos ejemplos típicos de conversiones de tipos de datos utilizando la función CAST.

Convertir cadena a entero

Ejemplo de conversión de datos de cadena a tipo de datos entero.

SELECT CAST('456' AS INT) AS ConvertedValue;

Esta consulta convierte la cadena '456' al entero 456.

Convertir entero a cadena

Ejemplo de conversión de datos enteros a tipo de datos cadena.

SELECT CAST(789 AS VARCHAR(10)) AS ConvertedValue;

Esta consulta convierte el entero 789 a la cadena '789'.

Convertir cadena a fecha

Ejemplo de conversión de datos de cadena a tipo de datos fecha.

SELECT CAST('2024-05-24' AS DATE) AS ConvertedValue;

Esta consulta convierte la cadena '2024-05-24' a la fecha 2024-05-24.

Convertir número de punto flotante a entero

Ejemplo de conversión de datos de punto flotante a tipo de datos entero.

SELECT CAST(123.456 AS INT) AS ConvertedValue;

Esta consulta convierte el número de punto flotante 123.456 al entero 123.

Diferencias entre las funciones CAST y CONVERT

SQL también tiene la función CONVERT, que es similar a la función CAST, pero existen algunas diferencias entre ambas.

Diferencias básicas

La función CAST cumple con el estándar ANSI SQL y es compatible con la mayoría de las bases de datos. En contraste, la función CONVERT es una extensión utilizada principalmente en Microsoft SQL Server y proporciona opciones de formato específicas.

Diferencias de sintaxis

Sintaxis de la función CAST:

CAST(expression AS target_data_type)

Sintaxis de la función CONVERT:

CONVERT(target_data_type, expression [, style])

La función CONVERT tiene una opción style que permite convertir fechas o cadenas en formatos específicos.

Ejemplos de uso

Ejemplo de la función CAST:

SELECT CAST('123' AS INT) AS ConvertedValue;

Ejemplo de la función CONVERT:

SELECT CONVERT(INT, '123') AS ConvertedValue;

Ejemplo de la función CONVERT usando la opción de formato:

SELECT CONVERT(VARCHAR, GETDATE(), 101) AS USFormattedDate;

Esta consulta convierte la fecha actual a una cadena en el formato MM/DD/YYYY.

Ejemplos avanzados usando la función CAST

La función CAST se puede utilizar en varios escenarios avanzados más allá de la conversión básica de tipos de datos. A continuación, algunos ejemplos prácticos.

Concatenar números como cadenas

Ejemplo de convertir un número a una cadena y concatenarlo con otra cadena.

SELECT 'Order Number: ' + CAST(OrderID AS VARCHAR) AS OrderDescription
FROM Orders;

Esta consulta convierte el OrderID a una cadena y lo concatena con la cadena Order Number:.

Forzar la consistencia de tipos de datos

Ejemplo de asegurar la consistencia de tipos de datos al usar columnas de diferentes tipos de datos juntas.

SELECT CAST(SalesAmount AS DECIMAL(10, 2)) AS FormattedSalesAmount
FROM Sales;

Esta consulta convierte la columna SalesAmount a un tipo DECIMAL con 2 lugares decimales.

Comparar fechas y cadenas

Ejemplo de convertir una fecha a tipo cadena para compararla.

SELECT *
FROM Events
WHERE CAST(EventDate AS VARCHAR) = '2024-05-24';

Esta consulta convierte la columna EventDate a una cadena y busca filas que coincidan con la cadena de fecha especificada.

Conversión condicional de tipos de datos

Ejemplo de usar la instrucción CASE para realizar una conversión condicional de tipos de datos.

SELECT 
    CASE 
        WHEN IsNumeric(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS ConvertedValue
FROM SampleTable;

Esta consulta convierte la columna Value a un entero solo si el valor es numérico.

Manejo de errores usando la función CAST

Pueden ocurrir errores durante la conversión de tipos de datos. Aquí hay algunos métodos de manejo de errores a considerar al usar la función CAST.

Usar la función TRY_CAST

En SQL Server, puede usar la función TRY_CAST para evitar errores de conversión. TRY_CAST devuelve NULL si la conversión falla.

SELECT TRY_CAST('abc' AS INT) AS SafeConversion;

Esta consulta devuelve NULL porque la conversión de la cadena 'abc' a un entero falla.

Manejo de errores con instrucciones CASE

Ejemplo de combinar la instrucción CASE con el manejo de errores basado en condiciones.

SELECT 
    CASE 
        WHEN ISNUMERIC(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS SafeConversion
FROM SampleTable;

Esta consulta devuelve NULL si el Value no es numérico.

Usar la función TRY_PARSE

TRY_PARSE es útil para convertir cadenas a fechas o números. TRY_PARSE también devuelve NULL si la conversión falla.

SELECT TRY_PARSE('2024-05-24' AS DATE USING 'en-US') AS SafeDateConversion;

Esta consulta convierte la cadena '2024-05-24' a tipo fecha y devuelve NULL si la conversión falla.

Consulta de ejemplo para el manejo de errores

A continuación, un ejemplo de manejo de errores usando TRY_CAST.

SELECT 
    Name, 
    TRY_CAST(Age AS INT) AS SafeAge 
FROM Users;

Esta consulta evita errores devolviendo NULL si los valores en la columna Age no se pueden convertir a enteros.

Conclusión

La función CAST es una herramienta poderosa y flexible para la conversión de tipos de datos en SQL. Entender su sintaxis básica e intentar varios ejemplos de conversión de tipos de datos le ayudará a desarrollar habilidades para crear consultas más complejas. Además, es importante conocer las diferencias y el uso de otras funciones de conversión como CONVERT y TRY_CAST. El manejo adecuado de errores asegura la creación de consultas SQL confiables. Domine el uso de la función CAST para realizar operaciones en bases de datos de manera más eficiente.

Índice