Se la sequenza delle ore e' come hai esemplificato il problema e' di facile soluzione.
Ammesso che sia cosi' e' chiaro che l'ora piu' vicina e' quella che sta tra le 9:16 e le 9:25
quindi se:
8:56 - 9:05 = 9:00
9:06 - 9:15 = 9:10
9:16 - 9:25 = 9:20
9:26 - 9:35 = 9:30
la query sara':
diversa sarebbe la storia se mydata avesse un valore randomize.codice:SELECT * FROM tabella WHERE '2006-08-18 09:21:00' BETWEEN mydata - INTERVAL 4 MINUTE AND mydata + INTERVAL 5 MINUTE