Convert Date no SQL Server: Guia Completo para Datas
No universo do gerenciamento de bancos de dados, manipular datas é uma das tarefas mais frequentes e essenciais. O SQL Server oferece diversas funções para converter, formatar e manipular tipos de dados relacionados a datas. Entre essas, o comando CONVERT destaca-se por sua flexibilidade e poder na hora de transformar valores de datas em diferentes formatos e tipos de dados.
Seja para exibir datas no formato desejado, realizar comparações, ou extrair partes específicas de uma data, entender como funciona o CONVERT no SQL Server é fundamental para desenvolvedores, analistas e DBAs.

Este guia completo abordará tudo o que você precisa saber sobre o comando CONVERT DATE no SQL Server, incluindo exemplos práticos, dicas de uso e boas práticas para otimizar suas consultas envolvendo datas.
O que é o comando CONVERT no SQL Server?
O CONVERT é uma função do SQL Server que permite a conversão de um tipo de dado em outro, especialmente voltado para conversões envolvendo datas e horas. Sua sintaxe básica é:
CONVERT (tipo_de_dado_destino, expressão [, estilo])- tipo_de_dado_destino: o tipo de dado para o qual você deseja converter a expressão, por exemplo,
DATE,DATETIME,VARCHAR, etc. - expressão: o valor ou coluna a ser convertida.
- estilo (opcional): um número que indica o formato do resultado, especialmente útil na conversão de datas em textos com formatos específicos.
Como funciona a conversão de datas com CONVERT
Conversão para DATE
A conversão de uma expressão para o tipo DATE normalmente envolve extrair a data sem a hora. Por exemplo:
SELECT CONVERT(DATE, GETDATE());Este comando retorna a data atual, sem a parte de hora, como 2024-04-27.
Personalização do formato com o parâmetro estilo
O parâmetro estilo é um aspecto importante ao lidar com conversões de datas para textos. Ele define o formato de exibição da data e hora.
Por exemplo:
SELECT CONVERT(VARCHAR(10), GETDATE(), 101);Retorna a data no formato mm/dd/yyyy.
Para entender melhor, veja uma tabela com exemplos de estilos mais utilizados.
Tabela de estilos comuns de conversão de datas
| Estilo | Descrição | Exemplo de saída | Use com |
|---|---|---|---|
| 101 | mm/dd/yyyy | 04/27/2024 | Formatando datas para clientes nos EUA |
| 103 | dd/mm/yyyy | 27/04/2024 | Formato brasileiro comum |
| 112 | yyyymmdd | 20240427 | formato compacto ISO |
| 120 | yyyy-mm-dd hh:mi:ss | 2024-04-27 14:31:00 | formato padrão SQL Server |
| 23 | dd/mm/yyyy (ISO) | 27/04/2024 | leitura fácil para brasileiros |
Fonte: Documentação oficial do Microsoft.
Como converter diferentes tipos de dados de data no SQL Server
Converter VARCHAR para DATE
Se você possui uma string representando uma data, pode convertê-la para o tipo DATE assim:
SELECT CONVERT(DATE, '27/04/2024', 103);Neste exemplo, o estilo 103 é usado para indicar o formato brasileiro dd/mm/yyyy.
Converter DATETIME para DATE
Para extrair apenas a data de um campo do tipo DATETIME ou DATETIME2:
SELECT CONVERT(DATE, GETDATE());Converter TIMESTAMP para VARCHAR
Se desejar exibir uma data em formato de texto:
SELECT CONVERT(VARCHAR(20), GETDATE(), 120);Comparar datas usando CONVERT
Para filtrar registros com base em uma data específica:
SELECT * FROM VendasWHERE CONVERT(DATE, DataVenda) = '2024-04-27';Casos de uso comuns do CONVERT com datas
Formatar data para relatório de exportação
Muitas empresas exportam dados em formatos específicos, e o CONVERT é fundamental para garantir a compatibilidade.
Extração de partes da data
Embora o CONVERT seja útil, para extrair partes específicas de uma data, funções como YEAR(), MONTH() e DAY() são mais indicadas.
Ordenação de registros por data
Ordenar por uma coluna de data garantirá resultados precisos, especialmente quando as datas estão em formatos string. Converter antes da ordenação evita erros.
Dicas rápidas para usar CONVERT de forma eficiente
- Use estilos padrão para evitar ambiguidades de formato.
- Prefira armazenar datas em tipos nativos (
DATE,DATETIME) para maior precisão. - Evite usar conversões desnecessárias em grandes volumes de dados, pois podem impactar a performance.
- Utilize funções auxiliares como FORMAT() (a partir do SQL Server 2012) para formatações avançadas, porém com cautela, devido à performance.
Perguntas Frequentes (FAQs)
1. Qual a diferença entre CAST e CONVERT no SQL Server?
O CAST é uma função padrão do SQL para conversões, enquanto o CONVERT oferece recursos adicionais, como o parâmetro de estilo para formatar datas de maneiras específicas.
-- CASTSELECT CAST(GETDATE() AS VARCHAR(20));-- CONVERTSELECT CONVERT(VARCHAR(20), GETDATE(), 120);2. Como converter uma coluna de string com formato brasileiro para o tipo DATE?
SELECT CONVERT(DATE, sua_coluna, 103);3. É possível converter uma data para o formato ISO 8601?
Sim, usando o estilo 126:
SELECT CONVERT(VARCHAR(50), GETDATE(), 126);4. Como extrair o ano de uma data usando CONVERT?
Embora o CONVERT não extraia partes específicas da data, funções como YEAR() são indicadas:
SELECT YEAR(Data);5. Quais os melhores estilos para datas no Brasil?
Para o formato brasileiro, o estilo 103 é o mais utilizado:
SELECT CONVERT(VARCHAR(10), GETDATE(), 103);Conclusão
O comando CONVERT no SQL Server é uma ferramenta poderosa para manipulação de datas, oferecendo diversas opções de formatação e conversão. Dominar suas possibilidades garante maior precisão e flexibilidade ao trabalhar com bancos de dados, facilitando tarefas como geração de relatórios, exportação de dados e manipulação de registros históricos.
Lembre-se de evitar conversões desnecessárias em consultas de alta performance e sempre optar por tipos nativos de data ao armazenar informações temporais. Assim, seu banco de dados ficará mais eficiente e confiável.
Se desejar aprofundar seus conhecimentos, consulte a documentação oficial do Microsoft ou explore ferramentas complementares que auxiliam na formatação e manipulação de datas.
Referências
- Microsoft Docs – CONVERT (Transact-SQL)
- SQLServerCentral – Data Formatting and Conversion
- Curso de SQL Server – Data Types in SQL Server
Este artigo foi criado para fornecer um entendimento completo e atualizado sobre o comando CONVERT DATE no SQL Server, otimizando suas consultas e operações com datas.
MDBF