Es un poco desagradable cuando lo haces con tipos de datos de fecha y hora; un buen candidato para una función almacenada.
DATE_SUB(DATE_SUB(time, INTERVAL MOD(MINUTE(time),5) MINUTE ),
INTERVAL SECOND(time) SECOND)
Es más fácil cuando usa marcas de tiempo UNIXTIME, pero eso está limitado a un rango de fechas de 1970 a 2038.
FROM_UNIXTIME(UNIX_TIMESTAMP(time) - MOD(UNIX_TIMESTAMP(time),300))
Buena suerte.