Ao lidar com dados de datas no SQL, muitas vezes é necessário exibir os dados em um formato específico. Usando a função DATE_FORMAT() do MySQL, você pode facilmente converter dados de datas em vários formatos. Este artigo fornecerá uma explicação detalhada sobre como usar a função DATE_FORMAT(), desde o uso básico até exemplos avançados.
Uso Básico da Função DATE_FORMAT()
A função DATE_FORMAT() é usada para converter dados de datas em um formato especificado. A sintaxe básica é a seguinte:
DATE_FORMAT(date, format)
date
: Os dados de data que você deseja reformatarformat
: O formato desejado
Por exemplo, para converter a data 2024-05-23
do formato YYYY-MM-DD
para o formato MM/DD/YYYY
, a consulta SQL seria a seguinte:
SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;
O resultado desta consulta será 05/23/2024
. Em seguida, vamos examinar mais de perto os especificadores de formato que podem ser usados com a função DATE_FORMAT().
Lista de Especificadores de Formato
A função DATE_FORMAT() pode exibir datas usando vários especificadores de formato. Aqui estão os principais especificadores de formato:
Especificadores de Formato Relacionados à Data
%Y
: Ano com quatro dígitos (por exemplo, 2024)%y
: Ano com dois dígitos (por exemplo, 24)%m
: Mês com dois dígitos (01-12)%c
: Mês (1-12)%d
: Dia com dois dígitos (01-31)%e
: Dia (1-31)
Especificadores de Formato Relacionados ao Tempo
%H
: Hora com dois dígitos no formato 24 horas (00-23)%k
: Hora no formato 24 horas (0-23)%h
: Hora com dois dígitos no formato 12 horas (01-12)%I
: Hora no formato 12 horas (01-12)%l
: Hora no formato 12 horas (1-12)%i
: Minutos com dois dígitos (00-59)%s
: Segundos com dois dígitos (00-59)%p
: AM ou PM
Outros Especificadores de Formato
%W
: Nome do dia da semana (por exemplo, Sunday)%a
: Nome abreviado do dia da semana (por exemplo, Sun)%M
: Nome do mês (por exemplo, January)%b
: Nome abreviado do mês (por exemplo, Jan)%j
: Dia do ano (001-366)
Ao combinar esses especificadores, você pode exibir datas em vários formatos. Em seguida, vamos ver alguns exemplos específicos de uso com esses especificadores.
Exemplos Práticos
Aqui estão alguns exemplos de como converter dados de datas em vários formatos usando a função DATE_FORMAT().
Exemplo 1: Alterando o Formato Padrão da Data
No exemplo a seguir, a data 2024-05-23
é convertida para o formato MM/DD/YYYY
.
SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;
Resultado: 05/23/2024
Exemplo 2: Exibindo Apenas Mês e Ano
Este exemplo extrai e exibe o mês e o ano dos dados de data.
SELECT DATE_FORMAT('2024-05-23', '%M %Y') AS formatted_date;
Resultado: May 2024
Exemplo 3: Exibindo Data e Dia da Semana
Este exemplo converte a data em um formato que inclui a data e o nome do dia da semana.
SELECT DATE_FORMAT('2024-05-23', '%W, %M %d, %Y') AS formatted_date;
Resultado: Thursday, May 23, 2024
Exemplo 4: Formatando Dados de Tempo
Este exemplo converte dados de tempo no formato HH:MM AM/PM
.
SELECT DATE_FORMAT('2024-05-23 14:30:00', '%h:%i %p') AS formatted_time;
Resultado: 02:30 PM
Exemplo 5: Exibindo Carimbos de Data/Hora Completos
Este exemplo altera o formato de um carimbo de data/hora completo que inclui data e 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
Use esses exemplos como referência para converter dados de data no formato necessário. Em seguida, vamos examinar exemplos avançados de uso da função DATE_FORMAT().
Exemplos Avançados
Aproveitar a função DATE_FORMAT() pode atender a requisitos mais complexos. Aqui estão alguns exemplos que envolvem várias colunas e alterações de formato condicionais.
Exemplo 1: Formatando Datas Usando Múltiplas Colunas
Este exemplo mostra como exibir várias colunas de datas em 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 exibe order_date
no formato YYYY-MM-DD
e delivery_date
no formato Month DD, YYYY
.
Exemplo 2: Alteração Condicional de Formato
Este exemplo mostra como alterar o formato com base em uma condição. Aqui, o formato da data muda com base no valor da coluna 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 exibe ship_date
no formato Month DD, YYYY
se o status
for shipped
; caso contrário, exibe order_date
no formato YYYY-MM-DD
.
Exemplo 3: Formatando Datas Geradas Dinamicamente
Este exemplo mostra como gerar dinamicamente e formatar a data atual.
SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y %h:%i %p') AS current_datetime;
Esta consulta exibe a data e hora atuais no formato Weekday, Month Day, Year Hour:Minute AM/PM
.
Exemplo 4: Formato de Data Específico para Localidade
Este exemplo mostra como exibir datas de acordo com formatos específicos de localidade. Por exemplo, exibindo datas no formato de localidade japonesa.
SELECT DATE_FORMAT(order_date, '%Y年%m月%d日') AS formatted_date_jp
FROM orders;
Esta consulta exibe order_date
no formato de localidade japonesa YYYY年MM月DD日
.
Use esses exemplos avançados como guia para aproveitar de forma flexível a função DATE_FORMAT(). Em seguida, resumiremos os pontos principais do uso da função DATE_FORMAT() e forneceremos dicas para aplicação prática.
Resumo
A função DATE_FORMAT() é uma ferramenta poderosa no MySQL para alterar de forma flexível o formato dos dados de data. Desde o uso básico até especificadores de formato detalhados, exemplos práticos e casos de uso avançados, você aprendeu como manipular dados de datas livremente. Aqui estão os pontos principais:
Pontos Principais da Função DATE_FORMAT()
- Sintaxe Básica: Use
DATE_FORMAT(date, format)
para converter uma data em um formato especificado. - Especificadores de Formato: Combine vários especificadores para ano, mês, dia, hora, dia da semana, etc., para opções de exibição versáteis.
- Exemplos Práticos: Alterações padrão de formato de data e exibições específicas de tempo.
- Exemplos Avançados: Alterações de formato para várias colunas, alterações condicionais de formato, datas geradas dinamicamente e exibições específicas para localidade.
Dominando a função DATE_FORMAT(), você pode apresentar dados de data recuperados do banco de dados em um formato legível, melhorando a qualidade das aplicações e relatórios. Certifique-se de utilizá-la em suas operações diárias de dados e análise.