2011-10-07 9 views
6

Estoy tratando de calcular el promedio de algunas filas con un tipo de datos datetime (formato de fecha y hora estándar).
¿Cómo puedo hacer eso?Promedio de datos de fecha y hora tipo

+0

Conviértelos a segundos, calcule AVG y convierta los resultados del resultado en – zerkms

+0

Para una pregunta como esa, realmente debe especificar el RDBMS. Todos ellos tienen características especiales cuando se trata de marcas de tiempo. –

Respuesta

9

Convierta la fecha y hora a float. El estándar SQL lo define como el número de días desde 1900, por lo que debería ser bastante portátil. Por ejemplo:

declare @t table (dt datetime) 
insert @t select '1950-01-01' 
union all select '1960-01-01' 

select cast(avg(cast(dt as float)) as datetime) from @t 

Este resultado es 1955-01-01. Example at SE Data.

2

Esto es cómo conseguir que el promedio de una columna DateTime en MySQL:

create temporary table table_1 (
    aDate DateTime 
); 

insert into table_1 values 
    ('2000-01-01 00:00:00'), 
    ('2010-01-01 00:00:00'); 

select CAST(avg(aDate) as DateTime) from table_1; 
-- Result: "2005-01-01 00:00:00" 
2

En PostgreSQL usted podría:

SELECT to_timestamp(avg(EXTRACT(EPOCH FROM my_timestamp))) 
    FROM my_tbl; 

Más información en el manual de precisión here.

Cuestiones relacionadas