2014-11-23 89 views
1

我有一个MySQL数据表。每一行都有自己的数据。在那一行有start_timeend_time。基本上,当你开始做一个目标,当你完成(插入数据库)。就像各种计时器。mysql - 获取两个数据单元之间的差异的平均值

我怎样才能得到start_timeend_time的unix时间戳的平均值。我知道你会减去end_timestart_time以获得差异(以毫秒为单位),从那里...不知道还有什么。

+0

也许平均函数将有用 – Strawberry 2014-11-23 10:19:38

回答

1

unix_timestamp日期列从epoc中返回其表示形式为秒,所以减去其中两个会以秒为单位给出差异。像任何其他号码,就可以应用聚合avg功能,它为了得到平均:

SELECT AVG (UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time)) 
FROM my_table 

一旦你有了这个结果,你可以在你喜欢的任何方式操纵它。一个有用的操作将是使用sec_to_time转换秒数为HH:MM:SS格式(例如,183秒将表示为0时03分03秒小时):

SELECT SEC_TO_TIME 
     (AVG (UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time))) 
FROM my_table