我有一张表格,其中包含一个START_DATE和一个END_DATE列。
我想要检索每个小时之间这些时间戳的平均时间差,但只在上午9点到下午6点之间,并持续几天。我希望输出结果如下:
elapsed hour
-------------
2.5 11 <--today at 11AM
1.7 10
2.4 9
1.9 18 <--this is yesterday
2.4 17
4.0 16
我相信我已经很接近了,但是我就是无法让代码工作。这是我的代码:
SELECT
TRUNCATE(AVG(TIME_TO_SEC(TIMEDIFF(END_DATE, START_DATE))/60), 2) as elapsed,
EXTRACT(HOUR FROM END_DATE) as hour
FROM
TIME_INFO
WHERE
EXTRACT(HOUR FROM END_DATE) BETWEEN 9 AND 18 AND
DATE(END_DATE) > CURDATE() - INTERVAL 3 DAY
GROUP BY
EXTRACT(HOUR FROM END_DATE)
ORDER BY
END_DATE DESC
离目标很近,但只返回三天前的内容,而非我所需的跨多天内容。我正在使用mySQL 5.0,有人有什么想法吗?