Convert e Cast para SQL Server

Informática

06/04/2008

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:
 
SELECT
CONVERT(decimal(10,4),
 
CONVERT(varbinary(20), @Variavel))
Usando CAST
 
SELECT
CAST(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 Imasters'
 
SELECT
@Variavel AS DescricaoCompleta ,
 
CAST(@Variavel AS char(10)) AS Descricao10
Exemplo com Datas:
 
Neste exemplo o CAST converte a data atual para o formato extenso EUA e o CONVERT para o formato padrão BR
SELECT
 
GETDATE() AS Data,
CAST(GETDATE() AS varchar(30)) AS DataExtensoEUA,
 
CONVERT(varchar(30), GETDATE(), 103) AS DataPadraoBR
Há 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.
 
Fonte: Thiago Caserta (iMasters)

Esta apresentação reflete a opinião pessoal do autor sobre o tema, podendo não refletir a posição oficial do Portal Educação.


Colunista Portal - Educação

por Colunista Portal - Educação

O Portal Educação possui uma equipe focada no trabalho de curadoria de conteúdo. Artigos em diversas áreas do conhecimento são produzidos e disponibilizados para profissionais, acadêmicos e interessados em adquirir conhecimento qualificado. O departamento de Conteúdo e Comunicação leva ao leitor informações de alto nível, recebidas e publicadas de colunistas externos e internos.

Portal Educação

UOL CURSOS TECNOLOGIA EDUCACIONAL LTDA, com sede na cidade de São Paulo, SP, na Alameda Barão de Limeira, 425, 7º andar - Santa Cecília CEP 01202-001 CNPJ: 17.543.049/0001-93