Câu hỏi của bạn vẫn chưa rõ ràng vì bạn đã không đề cập đến đầu ra mong đợi dựa trên đầu vào của bạn. Tuy nhiên, bạn có thể sử dụng mã này để nhận start_time và end_time dựa trên bây giờ (). Thay đổi now()
theo yêu cầu của bạn.
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();
Giải thích:Đầu tiên chia số phút cho 5, sau đó lấy số sàn (bỏ số thập phân) và nhân với 5. Điều này sẽ cho bạn thời gian kết thúc gần nhất. Trừ 5 phút từ nó để có start_time.