Cast

Publicado el 07 junio 2014 por Jamesrevelo @herprogramacion
La expresión CAST de SQL permite convertir un tipo de dato a otro. Para ello deben existir ciertas congruencias entre la naturaleza de cada tipo, por ejemplo, convertir el VARCHAR 'perrobatoloco' a DATE no es algo lógico, así que no habría un casting exitoso.

Sintaxis

CAST(Columna|Valor AS TipoDato)
Cuando uso la expresion CAST?Cuando veas que quieres operar un número con una cadena. Cuando desees conectar tu SGBD a una aplicación escrita en algún lenguaje de programación y debas tener un formato concreto de dato. Cuando quieras usar funciones de strings para modificar fechas. En realidad hay muchísimos casos de acuerdo a tus necesidades. 
A continuación te mostraré algunas conversiones populares que pueden ser de utilidad recordar:
  • Convertir un tipo numérico a otro tipo numérico.
  • Cambiar un tipo numérico a un intervalo de tiempo o fracción. Por ejemplo el numero 3 a el intervalo DAY.
  • De DATE a TIMESTAMP. En este caso se le adjunta una hora puesta en ceros (00:00:00) a la fecha.
  • De TIMESTAMP a DATE. Se trunca el valor del tiempo.
  • De un intervalo temporal a otro intervalo temporal. Por ejemplo de días a años.
  • De DATE a VARCHAR y vicevesa.

Podemos ver un ejemplo?Claro!
Considera la siguiente tabla CLIENTE:

Ahora para demostrar un ejemplo de CAST realizaremos la siguiente consulta:
Encuentre el promedio de las edades de todos los clientes de la tabla con exactitud decimal

Para resolver esta consulta usaremos la función de agregado AVG para obtener el promedio de edades, pero antes debemos castear la columna EDAD para poder dar precisión flotante al promedio. Veamos:
SELECT AVG(CAST(EDAD AS FLOAT)) AS PROMEDIOFROM CLIENTE

Si no hubiéremos usado el CAST el promedio hubiese sido truncado al valor 27.James Revelo Urrea - Desarrollador independiente