Funções de data no SQL Server Por Reinaldo Viana Prezado leitor. Se você tivesse nascido ontem, obviamente hoje você teria um dia de idade. Agora responda rápido, e em SQL: qual o número de dias vividos por você até hoje? Aprenderemos neste artigo a trabalhar com funções de data no SQL Server. As principais são: GETDATE, DATEPART, DATEADD e DATEDIFF. Um detalhe importante é que as funções de data trabalham referenciando unidades de data. As mais comuns são: - year(ano); Observações: 1) o Books OnLine do SQL Server apresenta a lista completa desses parâmetros de valores ( unidades ), bem como outras funções de data; 2) as configurações de data para esse artigo estão no formato americano. Logo, a data 02/01/2004 deve ser lida como primeiro de fevereiro de 2004. GETDATE ( ) A função GETDATE retorna a data e a hora atuais do sistema. Podemos, no Query Analyzer , digitar o seguinte comando para obter a data e hora atuais: SELECT GETDATE ( ) DATEPART ( unidade , data ) A função DATEPART retorna a parte especificada de uma data como um inteiro. Observe os exemplos: SELECT DATEPART ( YEAR , '02/01/2004' ) Reposta: 2004 SELECT DATEPART ( MONTH , '02/01/2004' ) Reposta: 2 SELECT DATEPART ( DAY , '02/01/2004' ) Reposta: 1 DATEADD ( unidade , numero_unid,data ) A função DATEADD retorna uma nova data através da soma do número de unidades especificadas pelo valor unidade a uma data. Observe os exemplos: SELECT DATEADD ( DAY ,6, '02/01/2004' ) Reposta: 2004-02-07 SELECT DATEADD ( MONTH ,6, '02/01/2004' ) Reposta: 2004-08-01 SELECT DATEADD ( YEAR ,6, '02/01/2004' ) Reposta: 2010-02-01 DATEDIFF ( unidade , data1,data2 ) A função DATEDIFF calcula a diferença entre as datas data2 e data1 , retornando o resultado como um inteiro, cuja unidade é definida pelo valor unidade . Observe os exemplos: SELECT DATEDIFF ( DAY , '02/01/2004' , '05/25/2004' ) Reposta: 114 (dias) SELECT DATEDIFF ( MONTH , '02/01/2004' , '05/25/2004' ) Reposta: 3(meses) SELECT DATEDIFF ( YEAR , '02/01/2004' , '05/25/2006' ) Reposta: 2(anos) Dessa forma, a expressão SQL que retorna o número de dias vivido por você até hoje é: SELECT DATEDIFF(DAY, suadata, GETDATE()) Outro exemplo interessante é mostrado através do código T-SQL abaixo. Usando funções de data, exibimos, para cada cliente, a idade em dias, meses e em anos (idade do cliente na data atual e em 31 de dezembro). SELECT NOME, NASCIMENTO, Vimos, neste artigo, exemplos do uso de funções de data no SQL Server. Outros SGBDs implementam funções de data, provavelmente com sintaxe diferente. Consulte a documentação do SGBD que você utiliza, para obter maiores detalhes. Baixe aqui o script utilizado nesse artigo. Referências: Books OnLine do SQL Server SQL Server 7: Transact-SQL – Guia de Consulta Rápida: Novatec Editora Tenha bons estudos! Até a próxima !
|
|
|||||||||||||
Todos
os direitos reservados: DevMedia Group |