Cómo Cambiar Fácilmente el Formato de Fecha Usando la Función DATE_FORMAT() en SQL

Al manejar datos de fecha en SQL, a menudo es necesario mostrar los datos en un formato específico. Usando la función DATE_FORMAT() de MySQL, puedes convertir fácilmente los datos de fecha en varios formatos. Este artículo proporcionará una explicación detallada de cómo usar la función DATE_FORMAT(), desde el uso básico hasta ejemplos avanzados.

Índice

Uso Básico de la Función DATE_FORMAT()

La función DATE_FORMAT() se usa para convertir datos de fecha en un formato especificado. La sintaxis básica es la siguiente:

DATE_FORMAT(date, format)
  • date: Los datos de fecha que deseas reformatear
  • format: El formato deseado

Por ejemplo, para convertir la fecha 2024-05-23 del formato YYYY-MM-DD al formato MM/DD/YYYY, la consulta SQL sería la siguiente:

SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;

El resultado de esta consulta será 05/23/2024. A continuación, veamos más de cerca los especificadores de formato que se pueden usar con la función DATE_FORMAT().

Lista de Especificadores de Formato

La función DATE_FORMAT() puede mostrar fechas usando varios especificadores de formato. Aquí están los principales especificadores de formato:

Especificadores de Formato Relacionados con la Fecha

  • %Y: Año de cuatro dígitos (por ejemplo, 2024)
  • %y: Año de dos dígitos (por ejemplo, 24)
  • %m: Mes de dos dígitos (01-12)
  • %c: Mes (1-12)
  • %d: Día de dos dígitos (01-31)
  • %e: Día (1-31)

Especificadores de Formato Relacionados con la Hora

  • %H: Hora de dos dígitos en formato de 24 horas (00-23)
  • %k: Hora en formato de 24 horas (0-23)
  • %h: Hora de dos dígitos en formato de 12 horas (01-12)
  • %I: Hora en formato de 12 horas (01-12)
  • %l: Hora en formato de 12 horas (1-12)
  • %i: Minutos de dos dígitos (00-59)
  • %s: Segundos de dos dígitos (00-59)
  • %p: AM o PM

Otros Especificadores de Formato

  • %W: Nombre del día de la semana (por ejemplo, Sunday)
  • %a: Nombre abreviado del día de la semana (por ejemplo, Sun)
  • %M: Nombre del mes (por ejemplo, January)
  • %b: Nombre abreviado del mes (por ejemplo, Jan)
  • %j: Día del año (001-366)

Combinando estos especificadores, puedes mostrar fechas en varios formatos. A continuación, veamos algunos ejemplos específicos de uso con estos especificadores.

Ejemplos Prácticos

Aquí hay algunos ejemplos de cómo convertir datos de fecha en varios formatos usando la función DATE_FORMAT().

Ejemplo 1: Cambiando el Formato de Fecha Estándar

En el siguiente ejemplo, la fecha 2024-05-23 se convierte al formato MM/DD/YYYY.

SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;

Resultado: 05/23/2024

Ejemplo 2: Mostrando Solo Mes y Año

Este ejemplo extrae y muestra el mes y el año de los datos de fecha.

SELECT DATE_FORMAT('2024-05-23', '%M %Y') AS formatted_date;

Resultado: May 2024

Ejemplo 3: Mostrando Fecha y Día de la Semana

Este ejemplo convierte la fecha a un formato que incluye la fecha y el nombre del día de la semana.

SELECT DATE_FORMAT('2024-05-23', '%W, %M %d, %Y') AS formatted_date;

Resultado: Thursday, May 23, 2024

Ejemplo 4: Formateando Datos de Tiempo

Este ejemplo convierte datos de tiempo al formato HH:MM AM/PM.

SELECT DATE_FORMAT('2024-05-23 14:30:00', '%h:%i %p') AS formatted_time;

Resultado: 02:30 PM

Ejemplo 5: Mostrando Timestamps Completos

Este ejemplo cambia el formato de un timestamp completo que incluye tanto fecha como hora.

SELECT DATE_FORMAT('2024-05-23 14:30:00', '%Y-%m-%d %H:%i:%s') AS formatted_timestamp;

Resultado: 2024-05-23 14:30:00

Usa estos ejemplos como referencia para convertir datos de fecha en el formato requerido. A continuación, veamos ejemplos avanzados de uso de la función DATE_FORMAT().

Ejemplos Avanzados

Aprovechando la función DATE_FORMAT() se pueden manejar requisitos más complejos. Aquí hay algunos ejemplos que involucran múltiples columnas y cambios de formato condicionales.

Ejemplo 1: Formateando Fechas Usando Múltiples Columnas

Este ejemplo muestra cómo mostrar múltiples columnas de fecha en diferentes formatos.

SELECT 
    DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_order_date,
    DATE_FORMAT(delivery_date, '%M %d, %Y') AS formatted_delivery_date
FROM orders;

Esta consulta muestra order_date en formato YYYY-MM-DD y delivery_date en formato Month DD, YYYY.

Ejemplo 2: Cambio de Formato Condicional

Este ejemplo muestra cómo cambiar el formato basado en una condición. Aquí, el formato de fecha cambia según el valor de la columna status.

SELECT 
    order_id,
    status,
    CASE 
        WHEN status = 'shipped' THEN DATE_FORMAT(ship_date, '%M %d, %Y')
        ELSE DATE_FORMAT(order_date, '%Y-%m-%d')
    END AS formatted_date
FROM orders;

Esta consulta muestra ship_date en formato Month DD, YYYY si el status es shipped; de lo contrario, muestra order_date en formato YYYY-MM-DD.

Ejemplo 3: Formateando Fechas Generadas Dinámicamente

Este ejemplo muestra cómo generar y formatear dinámicamente la fecha actual.

SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y %h:%i %p') AS current_datetime;

Esta consulta muestra la fecha y hora actual en formato Weekday, Month Day, Year Hour:Minute AM/PM.

Ejemplo 4: Formato de Fecha Específico por Localidad

Este ejemplo muestra cómo mostrar fechas según formatos específicos de una localidad. Por ejemplo, mostrando fechas en formato de la localidad japonesa.

SELECT DATE_FORMAT(order_date, '%Y年%m月%d日') AS formatted_date_jp
FROM orders;

Esta consulta muestra order_date en el formato de la localidad japonesa YYYY年MM月DD日.

Usa estos ejemplos avanzados como guía para aprovechar flexiblemente la función DATE_FORMAT(). A continuación, resumiremos los puntos clave del uso de la función DATE_FORMAT() y proporcionaremos consejos para su aplicación práctica.

Resumen

La función DATE_FORMAT() es una herramienta poderosa en MySQL para cambiar flexiblemente el formato de los datos de fecha. Desde el uso básico hasta los especificadores de formato detallados, ejemplos prácticos y casos de uso avanzados, has aprendido cómo manipular los datos de fecha libremente. Aquí están los puntos clave:

Puntos Clave de la Función DATE_FORMAT()

  • Sintaxis Básica: Usa DATE_FORMAT(date, format) para convertir una fecha en un formato especificado.
  • Especificadores de Formato: Combina varios especificadores para año, mes, día, hora, día de la semana, etc., para opciones de visualización versátiles.
  • Ejemplos Prácticos: Cambios estándar de formato de fecha y visualización específica de tiempo.
  • Ejemplos Avanzados: Cambios de formato para múltiples columnas, cambios de formato condicionales, fechas generadas dinámicamente y visualizaciones específicas por localidad.

Dominando la función DATE_FORMAT(), puedes presentar datos de fecha recuperados de la base de datos en un formato legible, mejorando la calidad de las aplicaciones e informes. Asegúrate de utilizarla en tus operaciones y análisis de datos diarios.

Índice