Melhorias do T-SQL no SQL Server 2012 (Parte 5)

Posted on maio 8, 2012

2


Nessa semana iremos falar sobre as novas funções que foram adicionadas na versão do SQL Server 2012.

 

Funções de Conversão

Parse

Try_Parse

Try_Convert

 

SELECT PARSE(‘1988/07/20’ AS DATETIME2) AS [Parse]

 

SELECT TRY_PARSE(’20-07-1988′ AS DATETIME2) AS [Try_Parse]

 

SELECT TRY_CONVERT(DATETIME, ’20-07-1988′) AS [Try_Convert]

 

image

(Figura 1 – Conversões das Funções)

 

A diferença entre elas é que quando é utilizado o TRY_, caso a conversão não for correta em vez de se gerar uma excecção a mesma aparecerá como NULL.

 

Funções de Data e Tempo

Datefromparts

Timefromparts

Datetimefromparts

Datetime2fromparts

Smalldatetimefromparts

Datetimeoffsetfromparts

Eomonth

SELECT DATEFROMPARTS(2010,01,01)

SELECT TIMEFROMPARTS ( 17, 02, 34, 500, 3)

image

(Figura 2 – Resultado Funções DATEFROMPARTS e TIMEFROMPARTS)

SELECT DATETIMEFROMPARTS (2012, 04, 12, 22, 59, 59, 10)

SELECT DATETIME2FROMPARTS (2012, 04, 12, 22, 59, 59, 100, 7)

image

(Figura 3 – Resultado Funções DATETIMEFROMPARTS e DATETIME2FROMPARTS)

SELECT SMALLDATETIMEFROMPARTS (2012, 04, 12, 22, 59)

SELECT DATETIMEOFFSETFROMPARTS ( 2012, 10, 31, 12, 01, 01, 0, 12, 3, 7 )

image

(Figura 4 – Resultado Funções SMALLDATETIMEFROMPARTS e DATETIMEOFFSETFROMPARTS)

DECLARE @Data DATETIME = ‘2011-02-01’

SELECT EOMONTH(@Data) AS Atual

SELECT EOMONTH(@Data, 1) AS [Próximo Mês]

SELECT EOMONTH(@Data, 3) AS [Mês Passado]

image

(Figura 5 – Resultado Função EOMONTH)

Funções Lógicas e de String

Choose

IIF

Concat

Format

SELECT CHOOSE (5, ‘Gerente’, ‘Diretor’, ‘Desenvolvedor’, ‘Administrador’, ‘DBA’)

image

(Figura 6 – Resultado Função Choose)

DECLARE @ResultadoIF INT = 1;

DECLARE @ResultadoELSE INT = 2;

SELECT IIF ( 10 > 2, @ResultadoIF, @ResultadoELSE ) AS Resultado;

image

(Figura 7 – Resultado Função IIF)

SELECT CONCAT(‘Luan Moreno’,‘ ‘,‘Medeiros Maciel’,‘ ‘,‘022.366.551.77’, ‘ ‘, 10020300)

image

(Figura8 – Resultado Função Concat)

DECLARE @DataFormat DATETIME2 = GETDATE();

SELECT FORMAT( @DataFormat, ‘dd/MM/yyyy 00:00:00.000’, ‘pt-BR’ )

image

(Figura 9 – Resultado Função Format)

Ne próxima semana irei apresentar as novas funções analíticas disponíveis no SQL Server 2012.