Как брать значения из бд не за каждую минуту, а за каждые 5 минут?

В базу добавляется раз в минуту значение цены, если делать выборку за весь день, то у меня будут показаны все значения цены за каждую минуту, а можно ли каким-то образом "срезать" массив, чтобы были показаны значения за каждые 5 минут, соответственно все остальные значения просто удалялись и массив был бы меньше в 5 раз?

Например:
| id  | price | time  |
|-----|-------|-------|
| 1   | 100   | 15:01 |
| 2   | 200   | 15:02 |
| 3   | 220   | 15:03 |
| 4   | 115   | 15:04 |
| 5   | 221   | 15:05 |
| 6   | 220   | 15:06 |
| ... | ...   | ...   |
| 10  | 219   | 15:10 |


Превратить в это:
| id  | price | time  |
|-----|-------|-------|
| 1   | 221   | 15:05 |
| 2   | 219   | 15:10 |


UPD: время естественно в timestamp в базе хранится
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
@grinat
Перевести время в число через select TIME_TO_SEC(time) as seconds и вывести те записи, что кратны 60*5 where (seconds mod 300) == 0 Если orm, то использовать Raw Expressions чтобы вставить подобные выражения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы