两个日期的差异平均时间(以小时为单位)
问题描述:
如何找到以小时为单位的两个日期相差的平均时间?两个日期的差异平均时间(以小时为单位)
这是我的变体,但输出不能只按名称分组。
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
答
生成一个子查询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
样本数据和预期的结果将有帮助 –
你为什么不想只按名字分组?如果按开始日期和/或结束日期分组,则无法工作。注意:第一个区别应该是19,而不是7。 – trincot