MDBF Logo MDBF

Convert Datetime SQL Server: Guia Completo para Desenvolvimento

Artigos

No desenvolvimento de aplicações que utilizam bancos de dados, especialmente o SQL Server, manipular e converter tipos de dados de data e hora é uma tarefa fundamental. A função CONVERT no SQL Server é uma ferramenta poderosa que permite transformar valores de data e hora entre diferentes formatos e tipos. Este artigo aborda de forma completa como utilizar a função CONVERT para trabalhar com tipos DATETIME, apresentando exemplos, dicas, melhores práticas, e respondendo às dúvidas mais frequentes.

Seja você um desenvolvedor iniciante ou experiente, entender como converter dados de data e hora é essencial para garantir a integridade e a apresentação correta das informações em seus sistemas. Vamos explorar tudo que você precisa saber para dominar essa tarefa.

convert-datetime-sql-server

O que é a função CONVERT no SQL Server?

A função CONVERT no SQL Server é uma função que permite converter um valor de um tipo de dado para outro, frequentemente utilizada para manipular formatos de data, hora, string, números, entre outros.

Sintaxe básica da função CONVERT

CONVERT(data_type [ (length) ], expressão [, estilo])
  • data_type: O tipo de dado para o qual deseja converter.
  • expressão: O valor a ser convertido.
  • estilo (opcional): Um código numérico que determina o formato de saída, especialmente útil em conversões de data e hora.

Como converter DATETIME no SQL Server

Converter valores de DATETIME é uma operação comum ao preparar relatórios, fazer verificações de validade ou adaptar formatos para exibição. A seguir, explicamos as principais formas de realizar essas conversões.

Converter DATETIME para STRING com formatos específicos

Utiliza-se o parâmetro estilo da função CONVERT para definir como a data será apresentada.

Exemplos de estilos de conversão

EstiloDescriçãoExemplo de saída
101mm/dd/yyyy12/31/2023
103dd/mm/yyyy31/12/2023
120yyyy-mm-dd hh:mi:ss2023-12-31 23:59:59
121ISO 8601 padrão completo2023-12-31 23:59:59.000

Exemplo prático

SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS DataFormatada;-- Saída: 31/12/2023

Converter STRING para DATETIME

Para transformar uma string que representa uma data em um valor DATETIME, a conversão deve seguir o formato esperado, ou seja, o SQL Server tentará interpretar a string baseada no estilo padrão.

SELECT CONVERT(DATETIME, '31/12/2023', 103) AS DataConvertida;

Citação:
"A manipulação de datas é uma das tarefas mais comuns na programação de bancos de dados, facilitando a geração de relatórios e análises precisas." – Desenvolvedor SQL

Melhores práticas ao trabalhar com conversões de DATETIME

  • Sempre especificar o estilo ao converter datas para evitar ambiguidades.
  • Mantenha os formatos de entrada consistentes na sua aplicação.
  • Use funções de formatação para exibir datas de forma amigável ao usuário.
  • Evite conversões desnecessárias que possam impactar a performance do banco de dados.

Tabela de estilos de conversão mais usados

CódigoDescriçãoExemplo de usoResultado
101mm/dd/yyyyCONVERT(VARCHAR, GETDATE(), 101)12/31/2023
103dd/mm/yyyyCONVERT(VARCHAR, GETDATE(), 103)31/12/2023
120yyyy-mm-dd hh:mi:ssCONVERT(VARCHAR, GETDATE(), 120)2023-12-31 23:59:59

Para mais detalhes sobre estilos de conversão, acesse a documentação oficial do Microsoft SQL Server.

Casos de uso prático na rotina de desenvolvimento

1. Normalizar formatos de data de entrada

Ao receber dados de diferentes fontes, é comum que as datas estejam em formatos distintos. A conversão com o CONVERT ajuda a padronizar para armazenamento ou processamento.

2. Filtrar registros por intervalo de datas

SELECT * FROM VendasWHERE DataVenda BETWEEN CONVERT(DATETIME, '01/01/2023', 103)                   AND CONVERT(DATETIME, '31/12/2023', 103);

3. Exibir datas em formatos amigáveis para o usuário

SELECT NomeCliente, CONVERT(VARCHAR(10), DataCompra, 103) AS DataCompraFormatadaFROM ClientesCompras;

4. Comparar datas com precisão de segundos

SELECT * FROM EventosWHERE DataEvento >= CONVERT(DATETIME, '2023-12-20 18:00:00');

Perguntas Frequentes (FAQs)

1. Qual a diferença entre CAST e CONVERT no SQL Server?

Apesar de ambos realizarem conversões de tipos, CONVERT oferece mais controle sobre o formato de saída, especialmente útil para datas e strings, através do parâmetro de estilo. Já o CAST é mais simples e direto, sem opções de formatação explícitas.

2. Como extrair somente o ano de uma data no SQL Server?

SELECT YEAR(Data) AS Ano FROM Tabela;

3. Como converter uma data para o padrão ISO 8601?

SELECT CONVERT(VARCHAR, GETDATE(), 126) AS ISO8601Formatado;-- Resultado: 2023-12-31T23:59:59

4. É possível converter datas usando funções alternativas?

Sim, funções como FORMAT(), DATEPART(), e DATENAME() também são úteis para manipulação e exibição de componentes de data.

Conclusão

A manipulação de datas é uma habilidade essencial no desenvolvimento com SQL Server. A função CONVERT oferece uma maneira flexível e poderosa para transformar valores de datetime entre formatos diversos, facilitando o armazenamento, filtragem e exibição de informações temporais.

Entender os diferentes estilos de conversão, aplicar boas práticas e usar funções complementares ajuda a garantir que seu banco de dados seja eficiente, consistente e amigável ao usuário. Como afirmou um renomado desenvolvedor:

"Dominar a conversão de datas é fundamental para obter precisão e clareza nos seus relatórios."

Se desejar aprofundar seus conhecimentos, não deixe de explorar a documentação oficial da Microsoft sobre funções de conversão no SQL Server.

Referências

Palavras-chave para SEO

  • Convert SQL Server
  • DataTime para string SQL
  • Formatação de data SQL Server
  • Função CONVERT SQL
  • Tipos de dados de data e hora SQL
  • Como converter data SQL Server
  • Manipulação de datas SQL