Bases de Datos - filtrar duracion de horas

 
Vista:
sin imagen de perfil

filtrar duracion de horas

Publicado por Marcos Andres (1 intervención) el 29/05/2014 06:47:29
Buenas,

tengo la siguiente tabla y lo que yo tengo es hasta la duracion real, pero tambien quiero agregar la duracion que tuvo el evento entre las 8 y las 22, voy a explicar un poco mas.
por ejemplo...
* si mi evento comienza hoy a las 4 de la mañana y termina hoy a las 5 de la mañana, la duracion de 8 a 22 sería de 00hs.
* si mi evento comienza hoy a las 4 de la mañana y termina hoy a as 14, la duracion de 8 a 22 sería de 6 horas.
* si mi evento comienza hoy a las 14 y termina el dia siguienet a las 14, la duracion de 8 a 22 sería de 14 horas.

table_name = eventos

hora_fecha_inicio | hora_fecha_fin | DURACION_REAL | DURACION_08_a_22

08:00 20-05-2014 | 14:00 20-05-2014 | 06:00 | 06:00
04:00 20-05-2014 | 06:00 20-05-2014 | 02:00 | 00:00
08:00 20-05-2014 | 22:00 20-05-2014 | 14:00 | 14:00
04:00 20-05-2014 | 23:00 20-05-2014 | 19:00 | 14:00
04:00 20-05-2014 | 16:00 20-05-2014 | 36:00 | 24:00

fecha= hora dia-mes-año

si alguien me puede ayudar les agradecería o si faltan mas detalles les puedo dar si necesitan. saludos...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

filtrar duracion de horas

Publicado por Pico (1 intervención) el 31/05/2014 20:00:16
Sguro que hay una fórmula matemática que lo saca, pero una opción más sencilla de implementar es contar:

desde hora inicio hasta hora final
si hora es mayor que 6 y menor 22 incrementar duración.

El cambio de día se soluciona poniendo el contador de hora a 0 si es mayor que 23.

Si el bucle cuenta horas se puede hacer con un AddHour, mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar