Introducción

MySQL es el gestor de base de datos más querido. Seguramente alguna vez vamos a querer castear un valor.

Castear un valor es cambiar su tipo, o convertirlo a otro tipo de dato. Por ejemplo, puede que necesitemos convertir una cadena a entero, a flotante, booleano, etcétera.

En mi caso tenía que cambiar todos los datos de mi tabla para que dejaran de ser flotantes y fueran enteros.

Veamos entonces algunos ejemplos de cómo castear o cambiar valores en MySQL.

Sintaxis

Bueno, MySQL en su sitio oficial dice que la sintaxis es:

Es una función que castea valores. Y los tipos de datos son:

  • BINARY
  • CHAR
  • DATE
  • DATETIME
  • DECIMAL
  • JSON
  • NCHAR
  • SIGNED
  • TIME
  • UNSIGNED

Para convertir a entero elegimos SIGNED o UNSIGNED.

La diferencia es que el que tiene signo soporta valores negativos, y el unsigned sólo soporta enteros (útil cuando queremos almacenar grandes números positivos).

Ejemplos

Decimal o flotante a entero

Cuando queremos convertir un valor flotante (como 9.5) a entero, el primer valor se redondeará hacia abajo o hacia arriba.

Esto depende de la parte decimal. Si la parte decimal es menor que cinco, entonces se redondea hacia abajo. Si es 5 o mayor que eso, se redondea hacia arriba.

Aquí algunas pruebas:

Nota: si quieres más sobre redondeo mira este post.

Entero a flotante

De esta conversión no hay mucho que decir. Simplemente redondeará y agregará los ceros a la derecha del punto.

Te invito a leer este post sobre decimales para entender mejor la conversión.

Si convertimos, por ejemplo, el entero 5 a un decimal con una precisión de 3, este se convertirá en 5.000.

Aquí algunos ejemplos:

Si no entiendes el número 7, lee el post que mencioné arriba. Básicamente le decimos a MySQL que la mayor longitud del número será de 7 cifras, y el número a la derecha (3 y 5 respectivamente) es para indicar cuántos decimales se ocuparán.

En el primer caso ocupamos 3 decimales y en el segundo 5.

Entero a cadena

Igual esto es de lo más sencillo. Simplemente convertimos un entero, que será el mismo entero pero representado como cadena. 5 se convierte en “5”.

La diferencia es que podemos operar con funciones de cadena, ya que ahora sí serán de ese tipo.

De todos modos he probado y no hay diferencia entre trabajar con cadena o con enteros, ya que el motor infiere.

Aunque si queremos asegurarnos, podemos hacerlo así:

Entero a booleano

Ahora veamos cómo convertir un número a true o false, o lo mismo que convertir un int a un booleano.

MySQL no proporciona una función para esto, pero podemos utilizar la función IF.

Conclusión

Como podemos ver, podemos castear cualquier tipo de dato a otro tipo de dato, aunque primero debemos evaluar los resultados para no confundirnos ni realizar cosas erróneas.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 3,212 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comentarios

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: