MySQL DATE_FORMAT Explicado: Guia Completo para Formatar Datas e Horas

1. Antes de aprender a formatação de datas no MySQL: Conceitos básicos

Gerenciar dados de data em um banco de dados desempenha um papel crítico em qualquer sistema. No MySQL, o armazenamento preciso dos dados e a formatação correta são essenciais. Aqui, apresentamos os conceitos fundamentais de formatos de armazenamento e exibição de datas e explicamos a DATE_FORMAT function, que é útil para formatar dados.

1.1 Tipos de data do MySQL e suas características

O MySQL oferece vários tipos de dados para lidar com datas e horas. Ao entender o propósito de cada tipo, você pode selecionar o mais adequado e otimizar o desempenho do banco de dados.

  • DATE Type Armazena datas no formato “YYYY-MM-DD”. É adequado para dados de data simples que não requerem informações de hora (por exemplo, aniversários ou datas de eventos). Exemplo: 2024-10-19
  • DATETIME Type Armazena data e hora. O formato é “YYYY-MM-DD HH:MM:SS” e é útil para gerenciar logs e registros que incluem informações de hora. Exemplo: 2024-10-19 15:30:45
  • TIMESTAMP Type Armazenado como um timestamp UNIX (número de segundos desde 1 de janeiro de 1970). É frequentemente usado em sistemas que abrangem múltiplos fusos horários. Você pode usar CURRENT_TIMESTAMP para obter o timestamp atual.

Escolher o tipo de data apropriado com base nos requisitos da sua aplicação é importante. Isso melhora tanto a precisão dos dados quanto a eficiência das consultas.

1.2 A diferença entre armazenar e exibir datas

Ao armazenar datas no MySQL, o banco de dados as salva em um formato padrão. No entanto, muitas vezes é necessário exibi‑las em um formato amigável ao usuário. É aqui que a DATE_FORMAT function é utilizada. Com essa função, você pode gerar a saída dos dados armazenados em um formato personalizado.

2. Uso básico da DATE_FORMAT Function

A DATE_FORMAT function é usada para formatar datas armazenadas em um formato especificado. Ao usar especificadores de formato flexíveis, você pode personalizar vários estilos de exibição.

2.1 Sintaxe da DATE_FORMAT Function

DATE_FORMAT(date, format)
  • date : O valor de data a ser formatado (DATE, DATETIME, TIMESTAMP, etc.).
  • format : Uma string que especifica o formato de saída. Usa especificadores de formato precedidos por % .

Por exemplo, a consulta a seguir converte uma data para o formato “YYYY/MM/DD”:

SELECT DATE_FORMAT('2024-10-19', '%Y/%m/%d');

Resultado:

2024/10/19

2.2 Detalhes dos especificadores de formato

A DATE_FORMAT function permite a personalização flexível de data e hora usando vários especificadores de formato. Abaixo estão alguns especificadores comumente usados:

  • %Y : Ano com 4 dígitos (ex.: 2024)
  • %m : Mês com 2 dígitos (01–12)
  • %d : Dia com 2 dígitos (01–31)
  • %W : Nome do dia da semana (ex.: Saturday)
  • %H : Hora no formato 24h (00–23)
  • %i : Minutos (00–59)
  • %s : Segundos (00–59)

Por exemplo, a consulta a seguir exibe o dia da semana junto com o ano, mês e dia:

SELECT DATE_FORMAT('2024-10-19', '%W, %Y-%m-%d');

Resultado:

Saturday, 2024-10-19

2.3 Saída de data baseada em texto personalizado

Você também pode usar DATE_FORMAT para produzir formatos de data baseados em texto. A consulta a seguir gera a data em um estilo longo, como “October 19, 2024”.

SELECT DATE_FORMAT('2024-10-19', '%M %d, %Y');

Resultado:

October 19, 2024

Esse formato é comumente usado em relatórios, faturas e documentos oficiais em ambientes de língua inglesa.

3. Técnicas avançadas da DATE_FORMAT

A DATE_FORMAT function se torna ainda mais poderosa quando combinada com outras funções do MySQL. Aqui, apresentamos técnicas úteis para manipulação de datas.

3.1 Combinação com outras funções de data

A DATE_FORMAT function pode ser combinada com funções como DATE_ADD e DATE_SUB para executar operações de data dinâmicas.

Exemplo: Adicionar um mês a uma data e formatá‑la
SELECT DATE_FORMAT(DATE_ADD('2024-10-19', INTERVAL 1 MONTH), '%Y-%m-%d');

Resultado:

2024-11-19

Isso permite que você realize cálculos de data e formate os resultados, o que é útil para gerar relatórios dinâmicos e processar atualizações de dados.

3.2 Usando STR_TO_DATE em Conjunto

A função STR_TO_DATE converte uma string em um tipo de data. Quando combinada com DATE_FORMAT, você pode lidar com precisão com dados de string como valores de data.

Exemplo: Converter uma String em uma Data e Aplicar Formatação
SELECT DATE_FORMAT(STR_TO_DATE('October 19, 2024', '%M %d, %Y'), '%Y/%m/%d');

Resultado:

2024/10/19

Você pode converter dados de string complexos em um tipo de data e, em seguida, aplicar o formato apropriado depois.

4. Exemplos Comuns de Formatos de Data

Aqui estão vários formatos de data comumente usados em ambientes de negócios e sistemas. Esses exemplos são práticos para aplicações no mundo real.

4.1 Data Separada por Barra

SELECT DATE_FORMAT('2024-10-19', '%Y/%m/%d');

Resultado:

2024/10/19

O formato separado por barra é amplamente usado em formulários web e interfaces de usuário.

4.2 Formato ISO 8601

SELECT DATE_FORMAT('2024-10-19', '%Y-%m-%d');

Resultado:

2024-10-19

ISO 8601 é um padrão internacional e é adequado para troca de dados entre sistemas.

4.3 Exibindo Nome do Dia da Semana e do Mês

SELECT DATE_FORMAT('2024-10-19', '%M %W');

Resultado:

October Saturday

Este formato é adequado para cronogramas de eventos e exibições de calendário.

5. Resumo

A função DATE_FORMAT é uma ferramenta poderosa para lidar de forma flexível com a formatação de datas no MySQL. Desde a formatação básica até o uso avançado combinado com outras funções, ela pode ser aplicada em muitos cenários diferentes.

Ao integrá-la com funções como STR_TO_DATE e DATE_ADD, você pode alcançar um processamento de dados ainda mais flexível. Use as técnicas introduzidas neste artigo para manipular eficientemente dados de data e otimizar o manuseio de dados em seus sistemas e aplicativos.

Continue aproveitando os recursos do MySQL para melhorar a eficiência da operação do banco de dados e desenvolver sistemas mais sofisticados.