SQL Format as Date: Guia Completo para Formatar Datas no SQL
No mundo da gestão de bancos de dados, manipular datas de forma eficiente é essencial para uma análise precisa e para o desenvolvimento de aplicações robustas. A formatação de datas no SQL é uma tarefa comum que pode parecer desafiadora para iniciantes, mas, com as ferramentas certas, ela se torna bastante direta. Neste guia completo, abordaremos os principais aspectos sobre como formatar datas no SQL, destacando funções, exemplos práticos e boas práticas para garantir que suas consultas retornem os dados no formato desejado.
Seja você um desenvolvedor, analista de dados ou administrador de banco de dados, compreender como trabalhar com datas no SQL é fundamental para otimizar seus scripts e relatórios. Vamos explorar as diferentes funções de formatação disponíveis nas principais plataformas de banco de dados, além de dicas importantes para evitar erros comuns.

O que é SQL Format as Date?
"SQL format as date" refere-se ao processo de converter ou exibir dados de data em formatos específicos dentro de consultas SQL. Os bancos de dados muitas vezes armazenam datas em formatos padrão, como DATETIME ou DATE, mas a apresentação dessas datas pode variar conforme os requisitos do projeto, idioma, padrão regional ou visualização desejada.
Por exemplo, é comum desejar alterar uma data de 2024-04-27 para o formato 27/04/2024 ou April 27, 2024. Essas transformações são feitas usando funções específicas de cada sistema de gerenciamento de banco de dados (SGBD).
Como formatar datas em SQL: principais funções
Cada SGBD possui suas próprias funções para manipulação e formatação de datas. A seguir, apresentamos as principais funções usadas para esse propósito.
SQL Server
No SQL Server, a função mais comum para formatar datas é o FORMAT().
SELECT FORMAT(data, 'dd/MM/yyyy') AS data_formatadaFROM tabela_exemplo;Exemplo:
| data | data_formatada |
|---|---|
| 2024-04-27 14:35:00 | 27/04/2024 |
MySQL
O MySQL utiliza a função DATE_FORMAT().
SELECT DATE_FORMAT(data, '%d/%m/%Y') AS data_formatadaFROM tabela_exemplo;Exemplo:
| data | data_formatada |
|---|---|
| 2024-04-27 14:35:00 | 27/04/2024 |
PostgreSQL
No PostgreSQL, a função mais comum é TO_CHAR().
SELECT TO_CHAR(data, 'DD/MM/YYYY') AS data_formatadaFROM tabela_exemplo;Exemplo:
| data | data_formatada |
|---|---|
| 2024-04-27 14:35:00 | 27/04/2024 |
Oracle
Em Oracle, a função TO_CHAR() também é utilizada.
SELECT TO_CHAR(data, 'DD/MM/YYYY') AS data_formatadaFROM tabela_exemplo;Tabela comparativa de funções de formatação de data
| SGBD | Função | Sintaxe Exemplo | Formato de Saída Exemplo |
|---|---|---|---|
| SQL Server | FORMAT() | FORMAT(data, 'dd/MM/yyyy') | 27/04/2024 |
| MySQL | DATE_FORMAT() | DATE_FORMAT(data, '%d/%m/%Y') | 27/04/2024 |
| PostgreSQL | TO_CHAR() | TO_CHAR(data, 'DD/MM/YYYY') | 27/04/2024 |
| Oracle | TO_CHAR() | TO_CHAR(data, 'DD/MM/YYYY') | 27/04/2024 |
"A formatação adequada de datas é essencial para garantir a compreensão e consistência dos dados em qualquer sistema de informação." — Dados e Informação, 2022.
Como manipular e formatar datas específicas
Além de simplesmente alterar o formato, às vezes é necessário extrair partes específicas da data, como dia, mês ou ano.
Extraindo dia, mês e ano
- SQL Server
SELECT DAY(data) AS dia, MONTH(data) AS mes, YEAR(data) AS anoFROM tabela_exemplo;- MySQL
SELECT DAY(data) AS dia, MONTH(data) AS mes, YEAR(data) AS anoFROM tabela_exemplo;- PostgreSQL
SELECT EXTRACT(DAY FROM data) AS dia, EXTRACT(MONTH FROM data) AS mes, EXTRACT(YEAR FROM data) AS anoFROM tabela_exemplo;Formatar datas com padrão regional e idiomas
Para bancos de dados que suportam configurações regionais, é possível exibir datas com nomes de meses ou dias da semana na língua desejada, por exemplo:
-- PostgreSQLSET lc_time = 'pt_BR'; -- Para português brasileiroSELECT TO_CHAR(data, 'Day, DD TMMonth YYYY') FROM tabela_exemplo;Resultado N°1:
| data | resultado |
|---|---|
| 2024-04-27 | sábado, 27 de abril de 2024 |
Boas práticas ao formatar datas no SQL
- Considere o padrão regional: O formato de data pode variar de acordo com o país ou preferência de usuário.
- Utilize funções específicas do seu SGBD: Para garantir compatibilidade e desempenho.
- Evite manipular datas como texto: Sempre trabalhe com tipos de dados de data para evitar erros de conversão.
- Documente seus formatos: Manter um padrão consistente ajuda na manutenção do código.
- Teste diferentes formatos: Para visualizações de relatórios ou exportação de dados.
Perguntas frequentes (FAQs)
1. Qual a melhor função para formatar datas no SQL Server?
A função FORMAT() é uma das mais flexíveis, permitindo formatar datas facilmente. No entanto, ela foi introduzida a partir do SQL Server 2012. Para versões anteriores, é comum usar CONVERT() ou CAST().
2. Como formatar datas em formato estrangeiro, como 'MM-DD-YYYY'?
Basta ajustar o padrão de formatação. Por exemplo, em MySQL:
SELECT DATE_FORMAT(data, '%m-%d-%Y') AS data_formatada;3. É possível exibir a data em formato textual completo, como "27 de abril de 2024"?
Sim, usando funções específicas de cada sistema, combinadas com textos. Por exemplo, no PostgreSQL:
SELECT TO_CHAR(data, 'DD "de" Month "de" YYYY') FROM tabela_exemplo;4. Como evitar problemas com fusos horários na formatação de data?
Utilize funções de conversão de fuso horário disponíveis na sua plataforma de banco de dados antes de formatar. Em SQL Server, por exemplo, SWITCHOFFSET() pode ajudar.
Conclusão
A formatação de datas no SQL é uma tarefa fundamental e que permite apresentar informações de forma clara, regionalizada e acessível. Conhecer as funções específicas de cada SGBD facilita o trabalho de manipulação, além de garantir compatibilidade e eficiência nas consultas. Independentemente do banco de dados utilizado — SQL Server, MySQL, PostgreSQL ou Oracle — existe uma abordagem adequada para formatar suas datas de acordo com as necessidades do seu projeto.
Lembre-se de sempre verificar as melhores práticas e testar diferentes formatos para garantir que seus dados sejam apresentados de forma consistente e compreensível. Como afirmou um renomado especialista em bancos de dados, "a clareza na apresentação de dados é tão importante quanto sua integridade".
Para aprofundar seus conhecimentos sobre manipulação de datas, consulte os links Documentação oficial do SQL Server e MySQL Date and Time Functions.
Referências
- Microsoft Docs. FORMAT (Transact-SQL). Disponível em: https://docs.microsoft.com/pt-br/sql/t-sql/functions/format-transact-sql
- MySQL Reference Manual. Date and Time Functions. Disponível em: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
- PostgreSQL Documentation. Date/Time Functions and Operators. Disponível em: https://www.postgresql.org/docs/current/functions-datetime.html
- Oracle Documentation. TO_CHAR Function. Disponível em: https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/TO_CHAR.html
Transformar a apresentação de datas no seu banco de dados não precisa ser uma tarefa complexa. Com as ferramentas e dicas corretas, você pode garantir que seus dados sejam acessíveis, claros e com o formato adequado para qualquer finalidade.
MDBF