Conversión de tipos
En MySQL, existen varias funciones que permiten realizar conversiones de tipos de datos. A continuación, se presentan algunas de las funciones de conversión de tipos más comunes:
- CONVERT(expr, type): Convierte una expresión
expra un tipo de datos específicotype. Por ejemplo:SELECT CONVERT('123', SIGNED); - CAST(expr AS type): Realiza una conversión de tipo similar a
CONVERT. La sintaxis es:SELECT CAST('123' AS SIGNED); - CONVERT_TZ(dt, from_tz, to_tz): Convierte un valor de fecha y hora de una zona horaria a otra. Por ejemplo:
SELECT CONVERT_TZ('2023-01-01 12:00:00', '+00:00', '+03:00'); - STR_TO_DATE(str, format): Convierte una cadena
stren un valor de fecha según el formato especificado. Ejemplo:SELECT STR_TO_DATE('2023-01-01', '%Y-%m-%d'); - DATE_FORMAT(date, format): Convierte un valor de fecha en una cadena según el formato especificado. Por ejemplo:
SELECT DATE_FORMAT('2023-01-01', '%W, %M %e, %Y'); - CONVERT(expr USING charset): Convierte una expresión a un conjunto de caracteres específico. Ejemplo:
SELECT CONVERT('Hello', USING utf8);
Estas funciones proporcionan flexibilidad al trabajar con diferentes tipos de datos en MySQL y son útiles en diversas situaciones. Ten en cuenta que debes utilizar la función que mejor se adapte a tus necesidades específicas.
En MySQL, las funciones CAST y CONVERT se utilizan para realizar conversiones de tipos de datos, y en muchos casos, se pueden usar indistintamente. Sin embargo, hay algunas diferencias sutiles entre ambas:
- Sintaxis:
- CAST: La sintaxis básica de
CASTesCAST(expr AS type), dondeexpres la expresión que se va a convertir ytypees el tipo de datos al que se desea convertir.SELECT CAST('123' AS SIGNED); - CONVERT: La sintaxis básica de
CONVERTesCONVERT(expr, type). Aquí, también,expres la expresión ytypees el tipo de datos al que se desea convertir.SELECT CONVERT('123', SIGNED);
- CAST: La sintaxis básica de
- Compatibilidad ANSI:
- CAST: Es parte del estándar SQL ANSI, por lo que es más portable entre diferentes sistemas de gestión de bases de datos.
- CONVERT: Aunque es ampliamente utilizado en MySQL, no es parte del estándar ANSI SQL.
- Personalización de la Sintaxis:
- CAST: Tiene una sintaxis más estándar y menos flexible.
- CONVERT: Puede ser más flexible en algunos sistemas de gestión de bases de datos, ya que permite opciones adicionales, como la especificación de la codificación de caracteres.
Ejemplos:
- Cambio de Cadena a Número Entero:
-- Usando CAST SELECT CAST('123' AS SIGNED); -- Usando CONVERT SELECT CONVERT('123', SIGNED); - Conversión de Fecha:
-- Usando CAST SELECT CAST('2023-01-01' AS DATE); -- Usando CONVERT SELECT CONVERT('2023-01-01', DATE); - Conversión de Decimal a Entero:
-- Usando CAST SELECT CAST(123.45 AS SIGNED); -- Usando CONVERT SELECT CONVERT(123.45, SIGNED);
En la práctica, ambas funciones son ampliamente utilizadas, y la elección entre CAST y CONVERT a menudo se reduce a la preferencia personal o a la compatibilidad con diferentes sistemas de bases de datos.
En MySQL, hay varios tipos de datos a los que se puede convertir un valor utilizando la función CAST(). Aquí hay una lista de los tipos de datos más comunes:
BINARYCHARDATEDATETIMETIMEDECIMALSIGNEDUNSIGNED
Por ejemplo, para convertir un valor a un tipo de datos CHAR, se puede utilizar la siguiente sintaxis:
SELECT CAST(valor AS CHAR) FROM tabla;
https://dev.mysql.com/doc/refman/8.0/en/type-conversion.html