Grupo Mysql DateTime por 15 minutos

Tengo una table que se parece a esto

CREATE TABLE `time_table` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `creationDate` DATETIME NOT NULL, PRIMARY KEY (`id`) ) 

Básicamente, almaceno el time de creación de ciertos loggings en la tabla. Sé que si quiero get un recuento de los loggings que se crearon en un intervalo de 15 minutos, usaré algo como esto

 SELECT FLOOR(UNIX_TIMESTAMP(creationDate)/900) AS t, COUNT(*) FROM time_table GROUP BY t 

Eso me da algo como esto

 t COUNT(*) 1434187 1 1434188 3 1434189 2 1434190 2 

¿Cómo entiendo la primera columna? Si quiero que me muestre algo así como

 t COUNT(*) 2:00pm - 2:15pm 1 2:15pm - 2:30pm 3 2:30pm - 2:45pm 2 2:45pm - 3:00pm 2 

Entiendo que con alguna manipulación podría get 1434187 para aparecer a las 2:15 p.m. Incluso eso podría ser un buen comienzo … luego, con un poco de lógica, podría mostrar todo el período. ¡Gracias!

Una forma es simplemente usar > y < para get todo dentro de un range, pero puede encontrar esto más simple:

 SELECT ... GROUP BY ( 4 * HOUR( thistime ) + FLOOR( MINUTE( thistime ) / 15 )) 

de http://forums.mysql.com/read.php?10,202789,202807

Aquí está la solución que uso:

 SELECT FROM_UNIXTIME(FLOOR( UNIX_TIMESTAMP(creationDate)/900 ) * 900) AS t, COUNT(*) FROM time_table GROUP BY t 

Aunque llega 4 años después, espero que sea útil para alguien.

La respuesta 2 solo funciona durante 24 horas; testing esta;

 SELECT ... GROUP BY year(date),month(date),day(date),( 4 * HOUR( date ) + FLOOR( MINUTE( date ) / 15 ))