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:

See the gist on github.

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:

See the gist on github.

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:

See the gist on github.

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í:

See the gist on github.

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.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
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/

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

5 días hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

5 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

6 días hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.