Среднее значение типа данных datetime - PullRequest
6 голосов
/ 08 октября 2011

Я пытаюсь вычислить среднее значение для нескольких строк с типом данных datetime (стандартный формат даты и времени).
Как я могу это сделать?

Ответы [ 3 ]

9 голосов
/ 08 октября 2011

Преобразование даты и времени в float. Стандарт SQL определяет это как число дней с 1900 года, поэтому оно должно быть достаточно переносимым. Например:

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

Этот результат 1955-01-01. Пример на данных SE.

2 голосов
/ 08 октября 2011

В PostgreSQL вы можете:

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

Больше информации в руководстве по эксплуатации здесь .

2 голосов
/ 08 октября 2011

Вот как получить среднее значение столбца DateTime в 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"
...