C'est un peu désagréable quand vous le faites avec des types de données datetime; un bon candidat pour une fonction stockée.
DATE_SUB(DATE_SUB(time, INTERVAL MOD(MINUTE(time),5) MINUTE ),
INTERVAL SECOND(time) SECOND)
C'est plus facile lorsque vous utilisez des horodatages UNIXTIME, mais cela est limité à une plage de dates de 1970 à 2038.
FROM_UNIXTIME(UNIX_TIMESTAMP(time) - MOD(UNIX_TIMESTAMP(time),300))
Bonne chance.