.## 1. Introducción
En bases de datos MySQL, manejarás con frecuencia datos de fecha y hora. Las fechas almacenadas en una base de datos se guardan en formatos estándar, pero al mostrarlas a los usuarios, a menudo deseas reformatearlas para una mejor legibilidad. Ahí es donde la función DATE_FORMAT resulta útil. En este artículo presentaremos cómo usar la función DATE_FORMAT y sus diversas opciones de formato, y explicaremos formas prácticas de aplicarla mediante ejemplos reales.
2. Visión general de la función DATE_FORMAT
2.1 ¿Qué es la función DATE_FORMAT?
La función DATE_FORMAT es una función de MySQL que se utiliza para convertir datos de fecha a un formato especificado. Se emplea cuando deseas presentar las fechas en un formato arbitrario en lugar del formato predeterminado YYYY‑MM‑DD o del formato estándar de datetime. Por ejemplo, si quieres mostrar una fecha a los usuarios como “Sep 16, 2024”, esta función es muy útil.
2.2 Sintaxis básica
La sintaxis básica de la función DATE_FORMAT es la siguiente.
DATE_FORMAT(date, format)
date: Los datos de fecha que deseas formatear.format: Una cadena que especifica el formato de salida de la fecha.
Veamos un ejemplo concreto:
SELECT DATE_FORMAT('2024-09-16', '%Y-%m-%d') AS formatted_date;
Esta consulta convierte la fecha ‘2024-09-16’ al formato “2024-09-16” y la muestra.

3. Parámetros de formato de fecha
3.1 Lista de especificadores de formato
La función DATE_FORMAT admite muchos especificadores de formato. A continuación se muestra una lista de los más usados:
%Y: Año de 4 dígitos (p. ej., 2024)%y: Año de 2 dígitos (p. ej., 24)%m: Mes de 2 dígitos (01 a 12)%c: Mes (1 a 12)%d: Día de 2 dígitos (01 a 31)%e: Día (1 a 31)%H: Hora en formato 24 h (00 a 23)%ho%I: Hora en formato 12 h (01 a 12)%i: Minutos (00 a 59)%s: Segundos (00 a 59)%p: AM o PM
3.2 Ejemplos reales
Veamos ejemplos concretos de cómo estos especificadores afectan la salida.
SELECT
DATE_FORMAT('2024-09-16 14:35:59', '%Y-%m-%d %H:%i:%s') AS full_format,
DATE_FORMAT('2024-09-16 14:35:59', '%b %d, %Y') AS us_format,
DATE_FORMAT('2024-09-16 14:35:59', '%d/%m/%Y') AS european_format,
DATE_FORMAT('2024-09-16 14:35:59', '%h:%i %p') AS twelve_hour_format;
La salida de esta consulta será similar a lo siguiente:
full_format: 2024-09-16 14:35:59us_format: Sep 16, 2024european_format: 16/09/2024twelve_hour_format: 02:35 PM
4. Casos de uso prácticos
4.1 Escenario 1: Generación de informes
Por ejemplo, al generar informes mensuales en una empresa, puede que necesites mostrar las fechas en un formato “YYYY‑MM”. La siguiente consulta formatea las fechas de los informes para ese propósito.
SELECT
DATE_FORMAT(sale_date, '%Y-%m') AS report_month,
SUM(sales) AS total_sales
FROM sales_data
GROUP BY report_month;
Esta consulta devuelve el total de ventas mensuales de los datos de ventas en un formato como “2024-09”.
4.2 Escenario 2: Interfaz de usuario
DATE_FORMAT también es útil cuando deseas presentar fechas de forma clara a los usuarios en una aplicación web. Por ejemplo, puedes usarlo así al mostrar la fecha del último inicio de sesión en la página de perfil de un usuario.
SELECT
user_name,
DATE_FORMAT(last_login, '%Y-%m-%d %H:%i') AS last_login_formatted
FROM users;
Esto mostrará la fecha y hora del último inicio de sesión del usuario como “2024-09-16 14:35”.
4.3 Escenario 3: Optimización de consultas
En algunos casos, DATE_FORMAT también puede ser útil para la optimización de consultas a la base de datos. Por ejemplo, puedes emplear el formateo al extraer datos dentro de un rango de fechas específico.
SELECT
*
FROM transactions
WHERE DATE_FORMAT(transaction_date, '%Y-%m') = '2024-09';
Esta consulta extrae todas las transacciones que ocurrieron en septiembre de 2024.
5. Notas y buenas prácticas para DATE_FORMAT
5.1 Consideraciones de rendimiento
Si utilizas DATE_FORMAT con frecuencia, puede afectar el rendimiento. En particular, aplicarlo repetidamente a grandes conjuntos de datos puede aumentar el tiempo de procesamiento. Si es necesario, considera almacenar fechas preformateadas con antelación o formatearlas a nivel de la aplicación.
5.2 Localización
Al crear un sistema multilingüe usando DATE_FORMAT, debes prestar atención a la localización. Dado que los formatos de visualización de fechas varían según el país y la región, puede que necesites cambiar los formatos de forma dinámica según la configuración regional del usuario.
5.3 Formato Consistente
Utilizar formatos de fecha consistentes en todo el sistema es esencial para mejorar la experiencia del usuario. Por ejemplo, al usar el mismo formato en formularios de entrada, secciones de visualización e informes, puedes evitar confundir a los usuarios.
6. Resumen
La función DATE_FORMAT es una herramienta poderosa para formatear datos de fecha de manera flexible en MySQL. En este artículo, cubrimos el uso básico, ejemplos prácticos y notas importantes, así como buenas prácticas. Al utilizar esta función de forma eficaz, puedes mostrar fechas de una manera más clara y amigable para el usuario. Como siguiente paso, recomendamos aprender operaciones de fecha y hora más avanzadas.
7. Recursos de Referencia
- Documentación oficial de MySQL: DATE_FORMAT
- Dado que los artículos y tutoriales relacionados se actualizan regularmente, asegúrate de consultar la documentación oficial y los blogs técnicos de forma periódica.
Esperamos que este artículo te ayude a comprender y utilizar eficazmente la función DATE_FORMAT.


