Usando Funções DATEADD e GETDATE

Olá galera, estou um pouco afastado do Blog, por alguns meses não fiz nenhuma postagem. Passei um período bastante conturbado, pois tive problemas de saúde, além de estar focando minha atenção nos estudos pra prova de certificação do SQL Server 2012. Mas passado um pouco da agonia e correria do dia a dia vou postar uma dúvida de um amigo, onde o mesmo me questionou no desenvolvimento de um relatório sobre uma função que incrementasse um o número de dias na data vigente.

Uma resposta clássica que sana a dúvida dele é o uso das funções internas de data GETDATE e DATEADD. Estas funções utilizam como parâmetros o ano, mês e dias, que são as unidades de data mais comuns. GETDATE tem a função de trazer resultados como a data e hora do Servidor com precisão de milisegundos e o DATEADD retorna uma data especificada com o intervalo de número inteiro especificado.

No Books OnLine do SQL Server encontraremos diversas outras funções de data que nos auxiliam no cotidiano, mas essas citadas já solucionava o propósito da dúvida encontrada no desenvolvimento do relatório.

Abaixo os exemplos simples de como utilizar as funções:

Repare que neste exemplo utilizo as funções GETDATE e DATEADD. O resultado retornado é a data vigente, considerando que a consulta foi executada no dia 20/11/2013, mais 7 dias.

SELECT DATEADD(day,7,getdate()) as Data_HoraPrecisa_Com_7_Dias;

1

Já na consulta abaixo já usamos a função CONVERT para obter um resultado sem a hora.

SELECT DATEADD(day,7,convert(date,getdate())) as Data_Com_7_Dias;

1

Dificultei um pouco mais usando declaração de variável e setando o que busco de retorno da consulta, sendo que o retorno seria o mesmo da primeira imagem, pelo motivo de está utilizando o tipo de dado datetime2.

DECLARE @data datetime2;
SET @data = getdate();
SELECT DATEADD(day,7,@data) as DataHorario_Com_7Dias;

 

 

E por último a consulta usando variável novamente, porém declarando a mesma com o tipo de dado date. O resultado seria o mesmo da imagem dois.

DECLARE @data date;
SET @data = getdate();
SELECT DATEADD(day,7,@data) as Data_Com_7Dias;

Lembrem que o uso de funções são uma “mão na roda” quando estamos desenvolvimento queries para relatórios e nos auxiliam muito quando queremos ter informações de data e e hora de forma precisa. Podem ainda usar os parâmetros YEAR e MONTH para ano e mês respectivamente.

Bem pessoal, acho que por hoje é só.

Anúncios