Esta sentencia sql es de MYSQL
Tengo la siguiente consulta: (el campo i_m . es hora monitoreo)
SELECT camara, sum(
CASE WHEN i_m
BETWEEN '08:00:00'
AND '20:00:00'
THEN 1
ELSE 0
END ) AS Total1, sum(
CASE WHEN i_m >= '20:00:01'
AND i_m <= '23:59:59'
THEN 1
ELSE 0
END ) AS Total2000, sum(
CASE WHEN date_format( concat( fecha, ' ', i_m ) , '%Y-%m-%d %H:%i:%s' )
BETWEEN date_format( concat( date_add( '2009-07-22', INTERVAL 1
DAY ) , ' ', '00:00:01' ) , '%Y-%m-%d %H:%i:%s' )
AND date_format( concat( date_add( '2009-07-30', INTERVAL 1
DAY ) , ' ', '07:59:59' ) , '%Y-%m-%d %H:%i:%s' )
THEN 1
ELSE 0
END ) AS Total0008
FROM tbl_general
WHERE fecha >= '2009-07-22'
AND fecha <= '2009-07-30'
GROUP BY camara
LIMIT 0 , 30
Lo que pretendo es lo siguiente:
Que me de un total por turnos( osea de 8:00 a 20:00 y 20:00:01 a 07:59:59).
pero yo lo dividi en 3 partes:
que en Total1 que corresponde de 8:00 a 20:00 sin problemas por k es el mismo dia.
Total2000 es de 20:00 a 23:59:59 sin problemas es el mismo dia.
Total0008 ques de 00:00:00 a 07:59:59 pero del sigi dia, en este turno no calcula bien la cuenta y no encuentro el error, alguien que me pueda ayudar.
La idea principal seria que si hago consultas por turno por ejemplo 2009-07-22 al 2009-07-30
en el pimer turno comienza el 22 a las 8:00 y termina 20:00
pero el segundo turno comienza 22 pero a las 20:00:01 y termina el 31 a las 7:59:59. es donde esta el detalle, saludos