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
expr
a 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
str
en 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
CAST
esCAST(expr AS type)
, dondeexpr
es la expresión que se va a convertir ytype
es el tipo de datos al que se desea convertir.SELECT CAST('123' AS SIGNED);
- CONVERT: La sintaxis básica de
CONVERT
esCONVERT(expr, type)
. Aquí, también,expr
es la expresión ytype
es 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:
BINARY
CHAR
DATE
DATETIME
TIME
DECIMAL
SIGNED
UNSIGNED
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