Twoje pytanie nadal nie jest zbyt jasne, ponieważ nie wspomniałeś o oczekiwanych wynikach na podstawie danych wejściowych. Możesz jednak użyć tego kodu, aby uzyskać start_time i end_time na podstawie now(). Zmień now()
zgodnie z Twoimi wymaganiami.
select
date_sub(str_to_date(concat(hour(now()),':',floor(minute(now())/5)*5),'%H:%i'),interval 5 minute) as start_time,
str_to_date(concat(hour(now()),':',floor(minute(now())/5)*5),'%H:%i') as end_time,
now();
Wyjaśnienie:Najpierw podziel minuty przez 5, następnie weź piętro (usuń dziesiętne) i pomnóż przez 5. To da ci najbliższy czas zakończenia. Odejmij od tego 5 minut, aby uzyskać start_time.