SQL GO!!!

select 'Blog focado em SQL Server' from blog where nome ='SQLGO.wordpress.com'

Arquivos da Categoria: MSSQL2005

Cast e Convert

 

Para trabalhar com a conversão de dados é necessário que os tipos de dados sejam compatíveis entre si, como por exemplo, o numero 1 pode ser representado como smallint ou como bigint.

Cast é uma função do padrão ANSI e Convert é uma função do engine do SQL Server. Convert pode ser utilizado para formatação de valores do tipo datetime e money.

 

Sintaxe

Cast – CAST (expression AS data_type [ (length ) ] )

Convert – CONVERT (data_type [ (length ) ] ,expression [ ,style ] )

 

Conversão implícita – O engine do Sql Server realiza a conversão de forma automática sem especificar a função Cast ou Convert.

 

DECLARE @Num1 AS INT = 10000000,@Num2 AS TINYINT=3

–O SQL Server realizou a conversão automaticamente, o tinyint inicia do 0 ate 255

SELECT @Num1+@Num2

image

 

Conversão explicita – É necessário especificar a função Cast ou Convert.

SELECT GETDATE() AS ‘Valor sem converter’

SELECT CAST(GETDATE() AS TIME) as ‘CAST’

SELECT CONVERT(TIME, GETDATE()) as ‘CONVERT’

 

image

 

A imagem abaixo mostra todas as conversões de tipos de dados explícitas e implícitas que são permitidas para tipos de dados fornecidos pelo sistema SQL Server

 

Data type conversion table

 

Estilos de data e hora

O Convert também pode ser utilizado para formatar dados do tipo datetime e money, nesse caso é necessário especificar a formatação desejada.

 

SELECT CONVERT( VARCHAR, GETDATE(),111) as ‘111’

SELECT CONVERT( VARCHAR, GETDATE(),113) as ‘113’

SELECT CONVERT( VARCHAR, GETDATE(),108) as ‘108’

 

image

 

Lista de estilos disponíveis para campos do tipo datetime.

 

image

 

Saiba mais

CAST e CONVERT (Transact-SQL)

 

[]’s

Andressa Martins

Tipo de dados numéricos, qual usar?

O SQL Server nos oferece muitas opções de dados dos tipos numéricos mas que raramente são utilizados. Quando projetamos um banco de dados devemos nos atentar ao tamanho dos campos pois isso certamente irá causar um crescimento desnecessário na base de dados.

 

 INT, SMALLINT, TINYINT, BIGINT

 

Tipo de dados

Range

Tamanho

BIGINT

-9.223.372.036.854.775.808 a 9.223.372.036.854.775.808

8 bytes

INT

-2.147.483.648 a 2.147.483.647

4 bytes

SMALLINT

-32,768 a 32,367

2 bytes

TINYINT

0 a 255

1 byte

 

MONEY,SMALLMONEY

Tipo de dados

Range

Tamanho

MONEY

-922.337.203.685.477,5808 a 922.337.203.685.477,5807

8 bytes

SMALLMONEY

– 214.748,3648 to 214.748,3649

4 bytes

FLOAT, REAL

Tipo de dados

Range

Tamanho

FLOAT (N)

– 1,79E+308 a -2,23E-308, 0 e 2,23E-308 a 1,79E+308

Depende do valor de n

SMALLMONEY

– 3,40E + 38 a -1,18E – 38, 0 e 1,18E – 38 a 3,40E + 38

4 bytes

Valor n

Precisão

Tamanho

1-24

7 dígitos

4 bytes

25-53

15 dígitos

8 bytes

NUMERIC, DECIMAL

Tipo de dados

Range

Tamanho

NUMERIC

– 10^38 +1 a 10^38 – 1

8 bytes

DECIMAL

– 10^38 +1 a 10^38 – 1

4 bytes

Precisão

Tamanho

1-9 dígitos

5 bytes

10-19 dígitos

9 bytes

20-28 dígitos

13 bytes

29-38 dígitos

17 bytes

Saiba mais em:

Numeric Types