Въпросът ви все още не е много ясен, тъй като не споменахте очакван изход въз основа на вашия вход. Въпреки това, можете да използвате този код, за да получите start_time и end_time въз основа на now(). Променете now()
според вашите изисквания.
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();
Обяснение:Първо разделете минутите на 5, след това вземете думата (премахнете десетичната запетая) и я умножете по 5. Това ще ви даде най-близкия краен час. Извадете 5 минути от него, за да получите start_time.