Ver Mensaje Individual
  #14 (permalink)  
Antiguo 22/07/2009, 08:52
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Agrupar datetime por medias horas?? se puede???

No te entiendo chelo del sur.
Mira esto:

Código mysql:
Ver original
  1. mysql> SELECT
  2.     ->       ifnull(YEAR(fecha_date2),"SIN REGISTROS") AS `año`,
  3.     ->       UPPER(CASE WHEN MONTH(fecha_date2) = 1 THEN "enero"
  4.     ->                  WHEN MONTH(fecha_date2) = 2 THEN "febrero"
  5.     ->                  WHEN MONTH(fecha_date2) = 3 THEN "marzo"
  6.     ->                  WHEN MONTH(fecha_date2) = 4 THEN "abril"
  7.     ->                  WHEN MONTH(fecha_date2) = 5 THEN "mayo"
  8.     ->                  WHEN MONTH(fecha_date2) = 6 THEN "junio"
  9.     ->                  WHEN MONTH(fecha_date2) = 7 THEN "julio"
  10.     ->                  WHEN MONTH(fecha_date2) = 8 THEN "agosto"
  11.     ->                  WHEN MONTH(fecha_date2) = 9 THEN "septiembre"
  12.     ->                  WHEN MONTH(fecha_date2) = 10 THEN "octubre"
  13.     ->                  WHEN MONTH(fecha_date2) = 11 THEN "noviembre"
  14.     ->                  WHEN MONTH(fecha_date2) = 12 THEN "diciembre"
  15.     ->                                ELSE "Sin registros" END)  AS MES ,
  16.     ->       UPPER(CASE WHEN WEEKDAY(fecha_date2) = 0 THEN "Lunes"
  17.     ->                  WHEN WEEKDAY(fecha_date2) = 1 THEN "Martes"
  18.     ->                  WHEN WEEKDAY(fecha_date2) = 2 THEN "Miercoles"
  19.     ->                  WHEN WEEKDAY(fecha_date2) = 3 THEN "Jueves"
  20.     ->                  WHEN WEEKDAY(fecha_date2) = 4 THEN "Viernes"
  21.     ->                  WHEN WEEKDAY(fecha_date2) = 5 THEN "Sabado"
  22.     ->                  WHEN WEEKDAY(fecha_date2) = 6 THEN "Domingo"
  23.     ->                                 ELSE "Sin registros" END) AS `DIA`,
  24.     ->       ifnull(DATE_FORMAT(fecha_date2,'%Y-%m-%d'),"SIN REGISTROS") AS fecha,
  25.     ->       ifnull(TIME_FORMAT(fecha_date2,'%H:%i:%s'),"SIN REGISTROS") AS Horareal,
  26.     ->       h.mediahora AS `mediahora`,
  27.     ->       ifnull(SUM(IF(recibido= '',0,recibido)),0) AS Recibido
  28.     -> FROM Reg_15_minutos
  29.     -> RIGHT JOIN horas h
  30.     -> ON  h.mediahora =  CONCAT(IF(HOUR(fecha_date2)<10,CONCAT('0',HOUR(fecha_date2)) , HOUR(fecha_date2)),':', IF(MINUTE(fecha_date2)<29,'00','30'),':','00')
  31.     -> WHERE (fecha_date2 BETWEEN '2009-03-02 00:00:00' AND '2009-03-02 09:00:00') OR (h.mediahora between time('2009-03-02 00:00:00') and time('2009-03-02 09:00:00'))
  32.     -> GROUP BY YEAR(fecha_date2), MONTH(fecha_date2), DAYOFMONTH(fecha_date2), `mediahora`
  33.     -> ORDER BY h.mediahora,fecha_date2;
  34. +---------------+---------------+---------------+---------------+---------------+-----------+----------+
  35. | a&#241;o           | MES           | DIA           | fecha         | Horareal      | mediahora | Recibido |
  36. +---------------+---------------+---------------+---------------+---------------+-----------+----------+
  37. | 2009          | MARZO         | LUNES         | 2009-03-02    | 00:15:00      | 00:00:00  |        5 |
  38. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 00:30:00  |        0 |
  39. | 2009          | MARZO         | LUNES         | 2009-03-02    | 01:00:00      | 01:00:00  |        1 |
  40. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 01:30:00  |        0 |
  41. | 2009          | MARZO         | LUNES         | 2009-03-02    | 02:15:00      | 02:00:00  |        1 |
  42. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 02:30:00  |        0 |
  43. | 2009          | MARZO         | LUNES         | 2009-03-02    | 03:00:00      | 03:00:00  |        1 |
  44. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 03:30:00  |        0 |
  45. | 2009          | MARZO         | LUNES         | 2009-03-02    | 04:15:00      | 04:00:00  |        1 |
  46. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 04:30:00  |        0 |
  47. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 05:00:00  |        0 |
  48. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 05:30:00  |        0 |
  49. | 2009          | MARZO         | LUNES         | 2009-03-02    | 06:15:00      | 06:00:00  |        2 |
  50. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 06:30:00  |        0 |
  51. | 2009          | MARZO         | LUNES         | 2009-03-02    | 07:00:00      | 07:00:00  |        8 |
  52. | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | SIN REGISTROS | 07:30:00  |        0 |
  53. | 2009          | MARZO         | LUNES         | 2009-03-02    | 08:00:00      | 08:00:00  |        5 |
  54. +---------------+---------------+---------------+---------------+---------------+-----------+----------+
  55. 17 rows in set (0.00 sec)
  56.  
  57. mysql>

Muestra todas las horas presentes en la tabla horas y dice si hay o no registros. Realmente, que salida esperarías?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming