Convertir cadena a formato de fecha en MySQL
Este artículo lo guiará y lo guiará a través de diferentes funciones para convertir un valor de tipo cadena que actúa como DATE
en un valor de tipo DATE
. También practicaremos con algún código de ejemplo usando las funciones STR_TO_DATE()
, CONVERT()
y CAST()
en MySQL.
NOTA: Estamos utilizando MySQL V8.0.27. Puede obtener el más nuevo de aquí (si está disponible)
Convertir cadena a formato de fecha en MySQL
Aprenderemos los siguientes métodos para convertir una cadena al formato DATE
en MySQL.
MySQL STR_TO_DATE()
Función
Esta función convierte el valor str
(cadena) en valor DATE
. El formato de DATE
estará de acuerdo con su formato de cadena. Por ejemplo, si desea convertir MM/DD/YYYY
del tipo de cadena a tipo DATE
, la DATE
también tendrá el formato MM/DD/YYYY
.
La función STR_TO_DATE()
puede devolver el valor DATE
, DATETIME
o TIME
según la entrada y el formato de la cadena. Vea los ejemplos que se dan a continuación y compárelos con la salida.
SELECT STR_TO_DATE('2021-08-23', '%Y-%m-%d');
PRODUCCIÓN:
¿Y si cambiamos el formato? Reemplacemos el guión
por una coma
.
SELECT STR_TO_DATE('2021-08-23', '%Y,%m,%d');
PRODUCCIÓN:
Vea el resultado anterior, devolvió NULL
. Cambiemos el formato solo de YYYY-MM-DD
a DD-MM-YYYY
.
SELECT STR_TO_DATE('2021-08-23', '%d-%m-%Y');
PRODUCCIÓN:
Mira, devolvió NULL
nuevamente. Eso significa que debe tener el mismo formato de DATE
que tiene en su cadena de entrada. ¿Y si también tenemos TIEMPO
? Ejecutemos el siguiente comando.
SELECT STR_TO_DATE('2021-08-23 10:12:23', '%Y-%m-%d %T');
PRODUCCIÓN:
La función STR_TO_DATE()
ignorará el texto y generará solo DATE
. Vea el siguiente ejemplo.
SELECT STR_TO_DATE('2021-08-23 some other string', '%Y-%m-%d') as Date;
PRODUCCIÓN:
También podemos extraer el año. Si extrae el año, establecerá el día y el mes en cero. Consulte el siguiente código y salida.
SELECT STR_TO_DATE('2021-08-23', '%Y') as Year; #get year
PRODUCCIÓN:
Función CONVERT()
de MySQL
La función Convert
puede convertir el valor dado a un conjunto de caracteres o tipo de datos específico. Puede ver los detalles sobre el tipo de datos aquí.
SELECT CONVERT("2021-08-19", DATE); #convert to DATE
SELECT CONVERT("2021-08-19", DATETIME); #convert to DATETIME
SELECT CONVERT("2021-08-19", TIME); #convert to TIME
PRODUCCIÓN:
Función CAST()
de MySQL
Esta función convierte la entrada de cualquier tipo (puede ser una cadena, un entero o cualquier otro) a cualquier tipo de datos especificado. Puede ver los valores de los parámetros aquí en detalle.
SELECT CAST("2021-08-29" AS DATE) as date; #convert to date type
SELECT CAST("2021-08-29 11:12:45" AS DATETIME) as datetime; #convert to datetime type
SELECT CAST("11:12:45" AS TIME) as time; #convert to time type
PRODUCCIÓN:
Conclusiones
Llegamos a la conclusión de que puede haber varias formas de convertir un valor de cadena a DATE
, TIME
y DATETIME
según los requisitos del proyecto. Aprendimos sobre las funciones STR_TO_DATE
, CONVERT
y CAST
para propósitos de conversión.