Obtener las filas mySQL en el minuto a minuto de intervalo de tiempo durante varias horas

Yo podría tratar de hacer esto en PHP, pero yo creo que se podría hacer simplemente en mySQL. He filas en mySQL con una fecha de tiempo durante varias horas. Quiero volver a la cuenta de cada uno de los minutos de intervalo durante las varias horas.

GROUP BY MINUTE(date)

me da 60 filas, pero no me da la cuenta para 01:00:00 – 01:01:00 de manera diferente a partir de las 02:00:00 y 02:00:01.

Cómo puede hacerse esto?

¿Qué acerca de la fecha de la misma? ¿quieres grupo de los domingos minutos junto con los lunes minutos?

OriginalEl autor Rio | 2011-02-17

5 respuestas

  1. 19

    MySQL minuto de la función es, literalmente, tomar el número de minutos y la agrupación por que. Intente agrupar por hora entonces minuto:

    GROUP BY HOUR(date), MINUTE(date)

    OriginalEl autor beer_monk

  2. 15

    Nueva respuesta para la pregunta vieja!

    A grupo por minuto, usted puede simplemente:

    SELECT (unix_timestamp(`date`) - unix_timestamp(`date`)%60) groupTime, count(*) 
    FROM yourTable
    # WHERE clause
    GROUP BY groupTime

    Con esta solución, usted nunca mixto datetimes de un minuto con datetimes de la misma minuto de otra hora, día, …

    Además, Es una evolutivo de la solución porque, cambiando “60” a otro número, puede agrupar por un par de minutos (120), por un día (86400), …

    Uno de los grandes secundarios-beneficio de esta solución es que si la tienda de marcas de tiempo en lugar de las fechas a continuación, puede quitar el unix_timestamp() partes y aún de grupo, por minutos, por ejemplo – ¡increíble!
    realmente impresionante!

    OriginalEl autor didier2l

  3. 12

    Solo uso DATE_FORMAT:

    GROUP BY DATE_FORMAT(`date`, '%H:%i')
    Gracias. Esto fue útil para mí: SELECT DATE_FORMAT(`execute_at`, '%Y-%m-%d %H:%i'), COUNT(*) FROM automations GROUP BY DATE_FORMAT(`execute_at`, '%Y-%m-%d %H:%i') ORDER BY count(*) DESC

    OriginalEl autor ircmaxell

  4. 4

    Desde MySql almacena fechas/hora como un número completo, dividiendo el número por 100 le dará el minuto:

    GROUP BY FLOOR(`data` / 100)

    La agrupación de un número es más eficiente que la agrupación de texto.

    Si usted desea agrupar por minuto, independientemente de la fecha:

    GROUP BY FLOOR(`data` / 100) % 10000
    muy halpfull respuesta Gracias !:) 1000 10 minutos a 10000 1 hr 20000 2 hr

    OriginalEl autor The Scrum Meister

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *