Como calcular média de datas no SQL

Como calcular a média entre as datas de uma tabela no SQL Server, usando uma função de usuário

Nota:

Problema do aluno: Trabalho com o SQL Server 2000 e tenho vários campos de data numa tabela.

Necessidade: Preciso calcular a média entre todas as datas da tabela.

Solução: Criar uma função.

Primeiro, criamos um database e a tabela que nos servirá de base de dados.

CREATE DATABASE EXEMPLO_DATA GO – USE EXEMPLO_DATA – CREATE TABLE DATAS ( DATA DATETIME ) – INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:10.663' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:10.693' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:10.763' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:10.783' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:11.657' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:11.677' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:11.757' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:11.807' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:12.667' ) INSERT INTO DATAS VALUES ( ‘2004-05-12 17:21:12.687' ) GO

Agora, criamos a função:

CREATE FUNCTION CALCULAMEDIAENTREDATAS() RETURNS DATETIME AS BEGIN DECLARE @DATAINI DATETIME SELECT TOP 1 @DATAINI = DATA FROM DATAS ORDER BY DATA RETURN ( SELECT DATEADD (MS, AVG(DATEDIFF (MS, @DATAINI, DATA )), @DATAINI) FROM DATAS ) END GO

E, finalmente:

SELECT DBO.CALCULAMEDIAENTREDATAS()
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados