Convert e Cast para SQL Server - Transact SQL
Um breve conceito sobre os comandos Transact-SQL CONVERT e CAST muito úteis no dia-dia de DBAs e Desenvolvedores.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
A maioria dos que utilizam bancos de dados sabe que há comandos específicos que são praticamente uma "mão na roda", por assim dizer, pois nos ajudam, e em muito, em algumas necessidades específicas.
Bem, neste artigo falarei de dois destes comandos, conhecidos também como Transact-SQL, para o SQL Server .Que tal converter uma expressão de um certo tipo de dado para outro tipo?
O CONVERT e o CAST executam tal funcionalidade.
Sintaxe do comando CAST:
CAST(coluna AS tipo(comprimento))Sintaxe do comando CONVERT:
CONVERT(tipo(comprimento), coluna , estilo)Onde:
- Coluna:
É o campo o qual quer se aplicar o CAST ou o CONVERT.
- Tipo:
É o tipo de dados alvo, exemplo: varchar(), int, binary, etc.
- Comprimento:
É um parâmetro opcional de tipos nchar, nvarchar, char, varchar, binary, ou varbinary.
Para o CONVERT, se o comprimento não for especificado, o padrão é de 30 caracteres.- Estilo:
É o estilo, ou formato, de data desejada para conversão.
Exemplos:
Neste exemplo o CONVERT e o CAST redimensionam o campo com 2 casas decimais para 4 casas:
DECLARE @Variavel DECIMAL(5, 2)SET @Variavel = 20.55
Usando CONVERT:
SELECTCONVERT(decimal(10,4),
CONVERT(varbinary(20), @Variavel))Usando CAST
SELECTCAST(CAST(@Variavel AS varbinary(20)) AS decimal(10,4))
Neste exemplo o CAST pega os 10 primeiros caracteres:
DECLARE @Variavel varchar(25)SET @Variavel = 'SQL Server DEVMEDIA'
SELECT@Variavel AS DescricaoCompleta ,
CAST(@Variavel AS char(10)) AS Descricao10Exemplo com Datas:
Neste exemplo o CAST converte a data atual para o formato extenso EUA e o CONVERT para o formato padrão BRSELECT
GETDATE() AS Data,CAST(GETDATE() AS varchar(30)) AS DataExtensoEUA,
CONVERT(varchar(30), GETDATE(), 103) AS DataPadraoBRHá uma pequena confusão de interpretação do SQL Server com respeito a datas.
Os anos com dois dígitos têm uma interrupção padrão em 2049, isto é, o ano de dois dígitos 49 é interpretado como 2049, porém o ano de dois dígitos 50 é interpretado como 1950. Muitas aplicações cliente, tais como aquelas baseadas em objetos de automatização, usam o ano de interrupção padrão 2030. O SQL Server fornece a opção de configuração do ano interrupção padrão.
Eu sempre recomendo a utilização de quatro dígitos no que se refere a ano justamente para não haver confusões neste sentido.Abaixo a tabela com a relação dos tipos de datas que podemos utilizar.
Essa mesma tabela pode ser visualizada pelo site oficial da comunidade MSDN Microsoft dos Estados Unidos.
Tabela com estilos de data do CONVERT
Na próxima matéria falarei mais sobre SQL Server e comandos Transact-SQL.
Até mais.
Thiago Caserta
Graduando em Análise de Sistemas, formado em Sistemas de Informação, é MCP, MCTS, MCITP Database Administrator e MCT. Trabalha atualmente como DBA SQL Server na T-Systems. É grande contribuinte da comunidade Microsoft com foco em banco de dados - SQL Server



