SELECT SEC_TO_TIME(FLOOR((TIME_TO_SEC(CURTIME())+450)/900)*900)
W tym przykładzie użyłem CURTIME() do wprowadzania czasu, ale możesz użyć dowolnego pola czasu.
900 sekund=15 minut (okres do zaokrąglenia), 450 sekund to połowa tego (aby zapewnić element zaokrąglania). Testowałem z 1800/900, aby uzyskać najbliższe pół godziny, powinien działać z innymi (600/300 przez 10 minut itp.).