Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/06/2008, 09:06
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Observa esto sacado de: http://forums.mysql.com/read.php?10,...807#msg-202807

GROUP BY ((60/periodMinutes) * HOUR( thistime ) + FLOOR( MINUTE( thistime ) / periodMinutes ))

where thistime is the TIME column and periodMinutes is the period length in minutes

Donde pone periodMinutes, pones 30; y donde thistime, pones el nombre de tu campo de tipo TIME. La lógica parece sencilla: divides (siempre que se trata de números que sean divisores de 60) 60 por el número de minutos del período, y el resultado lo multiplicas por el número de horas, y a eso le sumas el número entero más elevado de los minutos divididos por el período: por ej. 02:35:00 agruparía por 2*2+1 = 5, agruparía por 5.


Para agrupar por cuarto de hora, aconseja esto (So to group by 15-min periods, write ...):

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

Última edición por jurena; 11/06/2008 a las 10:50