Convertir cadena a formato de fecha en MySQL

Mehvish Ashiq 25 marzo 2022
  1. Convertir cadena a formato de fecha en MySQL
  2. Conclusiones
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:

convertir cadena a formato de fecha en mysql - str a fecha de salida uno

¿Y si cambiamos el formato? Reemplacemos el guión por una coma.

SELECT STR_TO_DATE('2021-08-23', '%Y,%m,%d');

PRODUCCIÓN:

convertir cadena a formato de fecha en mysql - str a fecha error uno

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:

convertir cadena a formato de fecha en mysql - str a fecha error dos

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:

convertir cadena a formato de fecha en mysql - str a fecha salida dos

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:

convertir cadena a formato de fecha en mysql - str a fecha de salida cuatro

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:

convertir cadena a formato de fecha en mysql - str a fecha de salida cinco

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:

convertir cadena a formato de fecha en mysql - convertir salida

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:

convertir cadena a formato de fecha en mysql - salida de conversió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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL Date