Como usar DATE_FORMAT no MySQL: Guia completo de formatação de data e hora

1. Antes de Aprender a Formatação de Datas no MySQL: O Básico

Gerenciar dados de data em um banco de dados desempenha um papel crítico em todo sistema. No MySQL, o armazenamento preciso e a formatação adequada são essenciais. Aqui, apresentaremos o básico de como as datas são armazenadas e exibidas, e explicaremos a função DATE_FORMAT, que é útil para formatar a saída de datas.

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. Entender seus casos de uso ajuda a escolher o tipo correto e otimizar o desempenho do banco de dados.

  • Tipo DATE Armazena datas no formato YYYY-MM-DD. Adequado para dados simples que contêm apenas data (ex.: aniversários ou datas de eventos). Exemplo: 2024-10-19
  • Tipo DATETIME Armazena data e hora no formato YYYY-MM-DD HH:MM:SS. Útil para logs ou registros onde a hora é necessária. Exemplo: 2024-10-19 15:30:45
  • Tipo TIMESTAMP Armazena os dados como um timestamp UNIX (o número de segundos desde 1 de janeiro de 1970) e costuma ser usado em sistemas que abrangem diferentes fusos horários. Você pode obter o timestamp atual com CURRENT_TIMESTAMP.

Escolher o tipo de data correto com base nos requisitos da sua aplicação é crucial para precisão e eficiência das consultas.

1.2 Diferença entre Armazenamento e Exibição

Quando o MySQL armazena datas, ele usa um formato padrão. No entanto, os usuários frequentemente precisam que as datas exibidas de forma mais legível ou localizada. É aí que entra a função DATE_FORMAT — ela permite que você apresente os dados armazenados em um formato personalizado.

Na próxima seção, veremos como a DATE_FORMAT funciona e maneiras práticas de utilizá‑la.

2. Uso Básico da Função DATE_FORMAT

A função DATE_FORMAT é usada para formatar datas armazenadas no formato de saída desejado. Ao usar especificadores de formato flexíveis, você pode exibir datas em diversos estilos.

2.1 Sintaxe da DATE_FORMAT

DATE_FORMAT(date, format)
  • date : O valor de data que você deseja formatar (DATE, DATETIME, TIMESTAMP, etc.).
  • format : Uma string que especifica o formato de saída, usando especificadores de formato com o símbolo %.

Por exemplo, esta consulta converte uma data para o formato YYYY/MM/DD:

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

Resultado:

2024/10/19

2.2 Especificadores de Formato Comuns

A função DATE_FORMAT suporta muitos especificadores de formato para personalizar a saída de data e hora. Aqui estão alguns dos mais comuns:

  • %Y : Ano com quatro dígitos (ex.: 2024)
  • %m : Mês com dois dígitos (01–12)
  • %d : Dia com dois 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 junto com ano, mês e dia:

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

Resultado:

Saturday, 2024-10-19

2.3 Saída no Formato Japonês

Você também pode usar DATE_FORMAT para saídas localizadas. Por exemplo, esta consulta devolve a data no formato japonês YYYY年MM月DD日:

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

Resultado:

2024年10月19日

Esse formato é comumente usado em relatórios, faturas e documentos oficiais japoneses.

3. Técnicas Avançadas com DATE_FORMAT

A DATE_FORMAT se torna ainda mais poderosa quando combinada com outras funções do MySQL. Vamos ver algumas técnicas úteis para manipular operações com datas.

3.1 Combinação com Outras Funções de Data

Você pode combinar DATE_FORMAT com funções como DATE_ADD e DATE_SUB para cálculos de data dinâmicos.

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 é útil para gerar relatórios dinâmicos e processar atualizações baseadas em datas.

3.2 Uso com STR_TO_DATE

A função STR_TO_DATE converte uma string em um tipo de data. Combinada com DATE_FORMAT, você pode analisar strings em dados de data válidos e, em seguida, formatá‑las conforme necessário.

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

Resultado:

2024/10/19

Isso permite que você manipule datas complexas baseadas em strings e as formate corretamente.

4. Formatos de Data Comuns no Mundo Real

Aqui estão alguns formatos de data frequentemente usados em negócios e aplicações de sistemas.

4.1 Data com Barras

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

Resultado:

2024/10/19

Este formato é 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 é o padrão internacional e ideal para troca de dados entre sistemas.

4.3 Exibindo Dia da Semana e Nome do Mês

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

Resultado:

October Saturday

Isso é útil para agendas de eventos e visualizações de calendário.

5. Conclusão

A função DATE_FORMAT é uma ferramenta poderosa para formatação flexível de datas no MySQL. Desde formatações simples até casos de uso avançados combinados com outras funções, ela é altamente versátil.

Usando funções como STR_TO_DATE e DATE_ADD juntas, você pode alcançar um processamento de dados ainda mais dinâmico. Aplique as técnicas abordadas neste artigo para gerenciar dados de data de forma eficiente e otimizar seu sistema ou aplicação.

Continue aproveitando os recursos do MySQL para melhorar as operações de banco de dados e construir sistemas mais refinados.