Problema:
Le gustaría cambiar el formato de los datos de fecha y hora en una base de datos MySQL.
Ejemplo:
Nuestra base de datos tiene una tabla llamada student_platform
con datos en las columnas id
, first_name
, last_name
y registration_datetime
.
id | nombre | apellido | registro_fechahora |
---|---|---|---|
1 | Lora | Lorens | 2019-02-23 12:04:23 |
2 | Ana | Smith | 2018-07-10 10:12:15 |
3 | Tom | Jackson | 2019-03-09 08:20:33 |
4 | Ricardo | Williams | 2018-09-30 06:07:34 |
Para cada estudiante, obtengamos su nombre, apellido y fecha y hora de registro. Sin embargo, queremos mostrar la fecha y la hora en el siguiente formato:nombre del día de la semana abreviado, coma, año, nombre del mes, día del mes y la hora en horas, minutos y segundos. Debería verse así:
Tue, 2019 February 17 11:18:55
Solución:
Usaremos el DATE_FORMAT()
función. Esta es la consulta que escribirías:
SELECT first_name, last_name, DATE_FORMAT(registration_datetime,’%a, %Y %M %e %H:%i:%s’) AS format_registration_datetime FROM student_platform;
Este es el resultado de la consulta:
nombre | apellido | formato_registro_fechahora |
---|---|---|
Lora | Lorens | Sábado, 23 de febrero de 2019 12:04:23 |
Ana | Smith | martes, 10 de julio de 2018 10:12:15 |
Tomás | Jackson | Sábado, 9 de marzo de 2019 08:20:33 |
Ricardo | Williams | lunes, 30 de septiembre de 2019 06:07:34 |
Discusión:
En una base de datos MySQL, la función DATE_FORMAT() le permite mostrar datos de fecha y hora en un formato modificado.
Esta función toma dos argumentos. El primero es la fecha/fechahora a reformatear; puede ser una columna de fecha/hora/fechahora/marca de tiempo o una expresión que devuelve un valor en uno de estos tipos de datos. (En nuestro ejemplo, usamos el registration_datetime
columna de la datetime tipo de datos.)
El segundo argumento es una cadena que contiene el formato de fecha y hora deseado. MySQL pone a disposición una serie de especificadores, como:
- %a – Nombre abreviado del día de la semana.
- %Y – Año, en 4 dígitos.
- %M – Nombre completo del mes.
- %e – Día del mes (del 1 al 31).
- %H – Hora (de 00 a 23).
- %i – Minutos (de 00 a 59).
- %s – Segundos (de 00 a 59).
Puede obtener más información sobre los especificadores de fecha y hora aquí, en la documentación oficial de MySQL.
Por ejemplo, Lora Lorens registrado el '2019-02-23 12:04:23'. Ahora, su fecha y hora de registro tienen el nuevo formato de 'Sábado, 23 de febrero de 2019 12:04:23'.