У меня есть таблица MySQL с полем time
котором хранится время публикации рекламы. Мне нужно сгруппировать их в течение 15 минут и отображения.
Пример:
|comm1|comm2 |comm3| -------------------------------- |8:00- 8:15 | 2 | 5 | 0 | -------------------------------- |8:15- 8:30 | 0 | 0 | 1 | -------------------------------- |8:30- 8:45 | 4 | 1 | 3 | -------------------------------- |8:45- 9:00 | 4 | 5 | 2 | -------------------------------- |... | . | . | . | --------------------------------
и так далее до 24:00! Итак, мне нужно сделать две вещи:
1) разделение в течение 15 минут в течение всего дня и
2) по прошествии времени, когда коммерческая работа продлится до ближайшего из этих периодов.
Есть идеи? Я могу использовать только PHP / MySQL.
Попробуй это –
SELECT SEC_TO_TIME((TIME_TO_SEC(time_field) DIV 900) * 900) AS round_time FROM table
Где 900 – 60 секунд * 15 минут.
Не зная ничего о вашей таблице, трудно сказать. Но предположим, что у вас есть временное поле unix, вы можете получить начальный час + квартал следующим образом:
SELECT concat( hour( from_unixtime( time ) ) , ':', floor( minute( from_unixtime( time ) ) %4 ) *15 ) FROM table
В этом случае time
– это ваше временное поле unix. Если у вас есть поле time / datetime, вы можете удалить функцию FROM_UNIXTIME.