2014-02-13 92 views
0

我试图编写一个查询来知道两次之间的平均时间。我想用用户名写这个。SQL:两个日期之间的平均时间差(DD:MM:HH:SS)

下面是一个例子:

Start of time end of time user name 
12/20/12  1/1/13 1 
12/31/12  1/1/13 2 
12/31/12  1/1/13 3 
1/1/13   1/1/13 2 
1/1/13   1/1/13 3 
1/1/13   1/1/13 1 
1/1/13   1/1/13 2 
1/1/13   1/1/13 3 
1/1/13   1/4/13 3 
9/14/12   1/1/13 2 
1/1/13   1/1/13 2 
1/1/13   1/1/13 1 

我们有三个用户,

Username: 1 
Username: 2 
Username: 3 

这3个用户曾在一段时间(时间开始)开始任务,并在一段时间后结束任务(时间到)。

我想知道这些用户消耗的平均时间?>

能不能帮我写查询?

+0

什么是字段的数据类型? 并且会包含HH:MM:SS? –

+0

您能否提供样本数据的预期结果? –

回答

1

假设您对我们的时间列有适当的日期格式,并且您的表格不需要显式转换。以下是查询平均值:

select avg(avgs)/60/60/24 as Average from 
    (select avg(TIME_TO_SEC(TIMEDIFF(end_time,star_time))) as avgs 
FROM t group by user)as res; 

如果您可以提供更多信息,我们可以清除您的问题。

对于我创建的演示,请点击:SQLFiddle