SQL Cast: Convertir un valor

La función SQL CAST() es una de la funciones de conversión más útiles que tenemos disponibles en Microsoft SQL Server. Básicamente lo usamos para convertir un datos a un tipo de datos de destino sobre la marcha.

EL propósito de la función SQL CAST() en el lenguaje SQL es convertir datos a otro tipos. Es posible, por ejemplo, transformar una fecha en formato DATETIME en DATE, o viceversa.

Sintaxis de la función Cast

La sintaxis de la función SQL CAST es:

SELECT CAST( expresión AS tipo_de_datos );

Parámetros

  • expresión (opción obligatoria): es la expresión que se desea convertir a un tipo de datos específico.
  • tipo_de_datos (obligatorio): es el tipo de datos al que se desea convertir la expresión.

Ejemplos simple de CAST

Veamos un ejemplo muy simple de CAST donde nos muestra la conversión de datos a otro tipos.

SELECT CAST(25.5 AS FLOAT) AS NUM_FLOTANTE,
CAST('2023-01-01' AS DATE) AS FECHA,
CAST('2023-01-01' AS datetime) AS FECHA_HORA,
CAST(1454 AS CHAR(10)) AS FORMATO_TEXTO,
CAST(13 AS DECIMAL(4,2)) AS DECIMALES,
CAST(13.05 AS INT) AS ENTERO

sql cast

Si en la función SQL CAST(), hay un fallo al convertir al tipo de datos deseado devuelve un error. De lo contrario, devuelve el valor del tipo de datos convertido.

Algunas razones por las que podemos querer cambiar el tipo de datos de una columna (s) serían para convertir:

  • Una cadena a un entero para que el campo se pueda usar para agregaciones
  • Un entero a un decimal para evitar errores de redondeo
  • Un campo de cadena de texto debido a restricciones de tamaño de cadena

La función CAST también es útil cuando se desea comparar expresiones de diferentes tipos de datos. Por ejemplo, para comparar una expresión de tipo de datos varchar con una expresión de tipo de datos numérico, primero se debe convertir la expresión de tipo de datos varchar a un tipo de datos numérico con la función CAST.

Es importante tener en cuenta que no todas las conversiones son posibles. Es posible que algunas conversiones de datos no sean válidas y produzcan un error.

Similitud de SQL cast y convert

En muchos aspectos, CAST y CONVERT son similares. Ambas son usada para convertir datos de un tipo a otro. Aunque su sintaxis es diferente, ambas funciones pueden convertir valores de una formación a otra.

Cualquier cosa que pueda hacer con CAST, puede hacerlo con CONVERT. Si se pregunta si hay una diferencia en el rendimiento. De hecho, CAST realmente se implementa internamente a través de CONVERT.

Diferencia sql cast y convert

La función SQL CAST() se usa con más frecuencia. Esto se debe a que se considera una función estándar ANSI-SQL . Como resultado, esto significa que todas las bases de datos que usan SQL deberían admitirlo. 

Mientras que CAST se puede usar en casi cualquier base de datos , CONVERT es específico para las bases de datos de SQL Server . El uso de la función CONVERTIR se vuelve muy útil cuando se modifican los formatos de fecha y hora. 

En resumen, CAST es una función básica para convertir una expresión en un valor del tipo de datos deseado, mientras que CONVERT es una función más avanzada que ofrece más opciones de control sobre cómo se realiza la conversión.

Conclusión

En este artículo, aprendimos sobre la función SQL CAST() que se usa para convertir el valor de un tipo de datos determinado en un valor del tipo de datos deseado. Si la función CAST() no puede convertir el valor del tipo de datos dado al tipo de datos deseado, devuelve un error. De lo contrario, devuelve el valor convertido en el tipo de datos deseado.

Algunas cosas importantes que debe tener en cuenta con respecto a  SQL CAST() son:

  • Cuando intenta convertir un valor de tipo de datos flotante o numérico en un número entero, la función CAST() truncará el resultado. Mientras que, para cualquier otra conversión, la función CAST() redondeará el resultado.
  • Puede usar la función TRY_CAST() si quiere retornar mensaje personalizado de un error cuando falla la conversión. Esta función devolverá un valor nulo si falla la conversión.

Deja un comentario