Как я могу сделать в среднем даты в MySQL?

Я имел удивительный успех, используя Drupal в качестве фреймворка для веб-приложений. Он очень расширяемый - почти каждое поведение по умолчанию может быть легко переопределено с помощью модулей, и это довольно чистый лист для начала.

Drupal 7 имеет встроенное модульное тестирование , и более ранние версии могут легко это сделать с помощью плагина .

21
задан GEOCHET 25 June 2009 в 23:36
поделиться

4 ответа

Это кажется немного хакерским, но будет работать для дат между 1970 и 2030 годами (на 32-битной арке). По сути, вы преобразуете значения datetime в целые числа, усредняете их и конвертируете среднее значение обратно в значение datetime.

SELECT
    from_unixtime(
        avg(
            unix_timestamp(date_one)-unix_timestamp(date_two)
        )
    )
FROM
    some_table
WHERE
    some-restriction-applies

Вероятно, есть лучшее решение, но оно поможет вам в крайнем случае.

25
ответ дан 29 November 2019 в 20:43
поделиться
SELECT date_one + (date_two - date_one) / 2 AS average_date
FROM thetable
WHERE whatever

Вы не можете суммировать даты, но вы можете вычесть их и получить временной интервал, который можно уменьшить вдвое и прибавить к первой дате.

2
ответ дан 29 November 2019 в 20:43
поделиться

думая вслух, вы можете выполнить датировку в минутах от установленного времени, усреднить это значение, а затем добавить эти минуты обратно к установленному времени ...

1
ответ дан 29 November 2019 в 20:43
поделиться

AVG - это функция группирования, что означает, что она суммирует все строки в таблице и делит их на количество строк. Но похоже, что вам нужно среднее значение двух разных столбцов, сообщаемое индивидуально для каждой строки. В этом случае вы должны просто вычислить это самостоятельно: (date1 + date2) / 2. (MySQL может потребоваться дополнительный синтаксис для правильного добавления этих столбцов.)

Написанный вами код даст вам среднее прошедшее время таблицы между датами date1 и date2.

0
ответ дан 29 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: