SQL Convert Date: Guia Completo para Manipular Datas em SQL
No universo do banco de dados, trabalhar com datas é uma atividade frequente e essencial. A manipulação correta de tipos de dados de data é fundamental para garantir consultas precisas, geração de relatórios confiáveis e operações eficientes. Uma das funções mais utilizadas nesse contexto é a CONVERT em SQL, que permite alterar o formato de uma data, converter tipos de dados de data para string, entre outras operações.
Se você deseja entender profundamente como usar a função CONVERT para manipular datas em SQL, este guia completo é para você. Exploraremos desde conceitos básicos até exemplos avançados, além de fornecer dicas práticas que facilitam o seu trabalho no dia a dia com bancos de dados relacionais.

O que é o SQL Convert Date?
CONVERT é uma função presente em diversas dialects de SQL, especialmente no Microsoft SQL Server, que permite transformar valores de um tipo de dado para outro. Quando aplicada a datas, ela é útil para formatar, extrair ou alterar o padrão de representação de uma data.
Principais usos do SQL Convert Date
- Alterar o formato de uma data para exibir em relatórios.
- Converter uma coluna de data para string.
- Extração de partes específicas de uma data (ano, mês, dia).
- Comparar datas com formatos diferentes.
Como funciona a função CONVERT em SQL?
A sintaxe básica da função CONVERT é a seguinte:
CONVERT(tipo_de_dado_destino, expressão, estilo)- tipo_de_dado_destino: indica o tipo de dado para onde deseja converter o valor (ex.:
VARCHAR,DATETIME, etc.). - expressão: o valor ou coluna que deseja converter.
- estilo (opcional): código numérico que determina o formato de saída da data.
Estilo na conversão de datas
O parâmetro estilo é fundamental para definir o visual da data convertida. Por exemplo, no SQL Server, alguns estilos comuns incluem:
| Código | Formato de Data | Exemplo |
|---|---|---|
| 101 | mm/dd/yyyy | 12/31/2023 |
| 103 | dd/mm/yyyy | 31/12/2023 |
| 112 | yyyymmdd | 20231231 |
| 120 | yyyy-mm-dd hh:mi:ss (24h) | 2023-12-31 23:59:59 |
Importante: Os códigos de estilo variam entre diferentes bancos de dados, como SQL Server, MySQL, PostgreSQL, etc.
Exemplos Práticos de SQL Convert Date
Para ilustrar as aplicações mais comuns, vejamos exemplos usando SQL Server.
Converter data para string formatada
SELECT CONVERT(VARCHAR, GETDATE(), 103) AS DataFormatada; -- saída: 31/12/2023Extrair o ano, mês e dia de uma data
SELECT YEAR(GETDATE()) AS Ano, MONTH(GETDATE()) AS Mes, DAY(GETDATE()) AS Dia;Converter uma data para o formato yyyy-mm-dd
SELECT CONVERT(VARCHAR(10), GETDATE(), 23) AS DataISO; -- saída: 2023-12-31Comparar datas após conversão
SELECT *FROM PedidosWHERE CONVERT(DATE, DataPedido, 102) = '2023-12-31';Tabela de Estilos de Data no SQL Server
| Código | Significado | Exemplo | Resultado |
|---|---|---|---|
| 101 | mm/dd/yyyy | 12/31/2023 | 12/31/2023 |
| 103 | dd/mm/yyyy | 31/12/2023 | 31/12/2023 |
| 112 | yyyymmdd | 20231231 | 20231231 |
| 120 | yyyy-mm-dd hh:mi:ss (24h) | 2023-12-31 23:59:59 | 2023-12-31 23:59:59 |
Para outros dialects, consulte a documentação oficial de cada banco de dados.
Dicas para Otimização ao Trabalhar com Datas em SQL
- Use estilos padrão ao converter datas para garantir compatibilidade e facilitar a leitura.
- Evite armazenar datas como string. Sempre prefira tipos de dados de data nativos.
- Indexe colunas de data para melhorar o desempenho de consultas que envolvem filtros de período.
- Considere o fuso horário ao manipular datas, especialmente em aplicações globais.
- Documente os estilos utilizados em seus bancos de dados para futuras manutenções.
Perguntas Frequentes (FAQs)
1. Qual é a diferença entre CONVERT e CAST em SQL?
CAST é uma função padrão SQL que converte um valor de um tipo para outro, sendo seu uso mais simples e compatível entre diferentes bancos de dados. Já CONVERT é uma função mais específica do SQL Server, que além de converter tipos, permite definir estilos de formatação de data.
2. Como converter uma data no formato mm/dd/yyyy para dd/mm/yyyy?
No SQL Server, você pode usar o CONVERT com o estilo 103:
SELECT CONVERT(VARCHAR, Data, 103) AS DataFormatada;Se precisar trocar de formato, pode usar técnicas de manipulação de strings ou funções específicas de cada banco.
3. Como extrair a diferença entre duas datas em dias?
No SQL Server:
SELECT DATEDIFF(day, DataInicio, DataFim) AS DiasDeDiferencaFROM Tabela;4. Como lidar com fusos horários em SQL?
Para manipular fusos horários, recomenda-se usar tipos específicos de dados ou funções de sistema, como AT TIME ZONE no SQL Server 2016+.
Conclusão
A manipulação de datas em SQL é uma habilidade fundamental para profissionais de banco de dados, desenvolvedores e analistas de dados. A função CONVERT oferece flexibilidade para formatar, extrair e transformar datas, facilitando a geração de relatórios e o tratamento de dados temporais.
Ao dominar as técnicas apresentadas neste guia, você será capaz de lidar de forma eficiente com diferentes formatos de data, garantindo maior precisão e desempenho em suas operações com bancos de dados relacionais.
Referências
“A chave para um banco de dados eficiente é o entendimento de seus dados: sua estrutura, seu formato, sua manipulação.” — Desconhecido
Se precisar de mais informações ou exemplos específicos, não hesite em consultar a documentação oficial do seu banco de dados ou buscar artigos especializados.
MDBF