É um pouco desagradável quando você faz isso com tipos de dados datetime; um bom candidato para uma função armazenada.
DATE_SUB(DATE_SUB(time, INTERVAL MOD(MINUTE(time),5) MINUTE ),
INTERVAL SECOND(time) SECOND)
É mais fácil quando você usa carimbos de data/hora UNIXTIME, mas isso é limitado a um intervalo de datas de 1970 a 2038.
FROM_UNIXTIME(UNIX_TIMESTAMP(time) - MOD(UNIX_TIMESTAMP(time),300))
Boa sorte.