La función DATE_FORMAT() de MySQL, que fue incorporada en la versió 4.0 del conocido SGBD, nos permite dentro de un select definir el formato de salida de una fecha. La función recibe dos parámetros: una fecha o campo de fecha y una cadena de texto con el formato.
Los siguientes valores pueden ser usados en el formateo de fecha:
%a | Nombre del día abreviado (Sun a Sat) |
%b | Nombre de mes abreviado (Jan a Dec) |
%c | Mes en formato número (0 a 12) |
%D | Día del mes en formato numérico seguido de sufijo numeral (1st, 2nd, 3rd, …) |
%d | Día del mes en formato numérico, forzando dos dígitos siempre ( de 01 a 31) |
%e | Día del mes en formato numérico, sin forzar dos dígitos (1 a 31) |
%f | Microsegundos (000000 to 999999) |
%H | Hora en formato 24 horas, con dos dígitos |
%h | Hora en formato 12 horas, dos dígitos |
%I | Hora en formato 12 horas, dos dígitos |
%i | Minutos |
%j | Día del año (001 a 366) |
%k | Hora en formato 24 horas, sin forzar los dos dígitos |
%l | Hora en formato 12 horas, sin forzar los dos dígitos |
%M | Nombre del mes (January a December) |
%m | Mes en formato numérico, forzando dos dígitos. |
%p | AM o PM |
%r | Hora en formato 12 horas AM o PM (hh:mm:ss AM/PM) |
%S | Segundos (00 a 59) |
%s | Segundos (00 a 59) |
%T | Hora en formato 24 horas (hh:mm:ss) |
%U | Semana, tomando el domingo como primer día (00 a 53) |
%u | Semana, tomando el lunes como primer día (00 to 53) |
%V | Semana, tomando el domingo como primer día (01 a 53). Usado con %X |
%v | Semana, tomando el lunes como primer día (01 a 53). Usado con %X |
%W | Nombre del día completo (Sunday to Saturday) |
%w | Número del día en la semana, siendo el domindo 0 y el sábado 6. |
%X | Año para la semana, tomando el domingo como primer día. Usado con %V |
%x | Año para la semana, tomando el lunes como primer día. Usado con %V |
%Y | Año en formato de cuatro dígitos |
%y | Año en formato de dos dígitos |
Veamos unos ejemplos si quieres probarlo en casa:
Select DATE_FORMAT("2018-11-20", "%d/%m/%Y");
#Pintaría 20/11/2018, el formato europeo
Select DATE_FORMAT("2018-11-20", "%V %X");
#Pintaría 46 2018
Select DATE_FORMAT("2018-11-20", "%j-%y");
#Pintaría 324-2018
Select DATE_FORMAT("2018-11-20", "%W %d %M");
#Pintaría Tuesday 20 November
En el ejemplo le hemos pasado una cadena con una fecha como primer parámetro, pero puedes probar una consulta sobre un campo de una tabla que almacena alguna fecha.