两个日期的差异平均时间(以小时为单位)

两个日期的差异平均时间(以小时为单位)

问题描述:

如何找到以小时为单位的两个日期相差的平均时间?两个日期的差异平均时间(以小时为单位)

这是我的变体,但输出不能只按名称分组。

SELECT NAME, DATEDIFF(HOUR, START_DATE, END_DATE) 
FROM [dbo].[DB1] 
GROUP BY NAME, START_DATE, END_DATE 

例子:

1 DAY 
START_DATE 2017-05-02 05-00-00-000 
END_DATE 2017-05-03 00-00-00-000 
RESULT: 7 HOURS 

2 DAY 
START_DATE 2017-05-02 07-00-00-000 
END_DATE 2017-05-03 12-00-00-000 
RESULT: 5 HOURS 

AND AVG RESULT = 6 
+1

样本数据和预期的结果将有帮助 –

+1

你为什么不想只按名字分组?如果按开始日期和/或结束日期分组,则无法工作。注意:第一个区别应该是19,而不是7。 – trincot

生成一个子查询DATEDIFF,则平均是:

SELECT 
    [Name], 
    AVG([Time]) AS AverageTime 
FROM 
(
    SELECT 
     NAME, 
     DATEDIFF(hour, START_DATE, END_DATE) AS [Time] 
    FROM 
     dbo.DB1 
    GROUP BY 
     NAME, 
     START_DATE, 
     END_DATE 
) AS subquery 

你的意思是这样,

SELECT NAME, AVG(DATEDIFF(HOUR, START_DATE, END_DATE)) 
FROM [dbo].[DB1] 
GROUP BY NAME