У меня есть столбец date_of_post в моей таблице, которая выглядит следующим образом (пример) 2015-08-31 11:00:00
Попытка получить 3 часа данных SQL, отображаемых на 5 минут
я использую INTERVAL 1 DAY
, чтобы получить последние 24 часа и он прекрасно работает ,
SELECT DATE_ADD(date(t.date_of_post), INTERVAL hour(t.date_of_post) HOUR) AS dateTime, count(*) as entries
FROM `soc_stat` t
WHERE main_tag = 'coffee' AND t.date_of_post > DATE_SUB(NOW(), INTERVAL 1 DAY)
GROUP BY date(t.date_of_post), hour(t.date_of_post)
Однако теперь я хотел бы вернуть последние 3 часа на 5 минут. Таким образом, он вернет что-то по линиям
2015-08-31 12:05:00 = 11
2015-08-31 13:10:00 = 23
2015-08-31 14:15:00 = 7
2015-08-31 15:20:00 = 12
Я не очень силен в SQL. Я попытался изменить INTERVAL hour(t.date_of_post) HOUR
на INTERVAL minute(t.date_of_post) MINUTE
, а затем я изменил INTERVAL 1 DAY
на INTERVAL 1 HOUR
. Я думал, что вернет записи через минуты вместо часов, но, похоже, это не так. И тогда я бы попытался выяснить, как вернуть его за 5 минут, а не каждую минуту.
Как я могу получить все записи за последние 3 часа каждые 5 минут?
возможно дубликат [Группировка в интервале 5 минут в пределах диапазона времени] (http://stackoverflow.com/questions/4342370/grouping-into-interval-of-5-minutes-within-a- временной диапазон) – jlhonora