Sie müssen Ihren Zeitstempel in eine Zahl umwandeln, um ihn runden zu können. Und wenn Sie den durchschnittlichen Zeitstempel haben, konvertieren Sie ihn zurück in ein Datum.
select device, count(*) as cnt, FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(time)), '%i:%s')
from database.table
group by device
having cnt>1
order by device;
Hinweis:Wenn Sie negative Zeiten berücksichtigen, ist Ihr Durchschnitt offensichtlich! Wenn Sie dies nicht tun, ist es eine bessere Idee, es mit einer Skriptsprache (php, c#, ruby...) zu berechnen
average := avg(ts1–ts2, ts2-ts3, ts3-ts4)
= (ts1–ts2 + ts2-ts3 + ts3-ts4)/3
= (ts4-ts1)/3
Verallgemeinerung:
average = (last entry - first entry) / (number of entries - 1)