Alessandra Campos Alfaro escribió: > Buenas noches lista > > Estoy buscando diseñar una función que me pueda dar el numero de horas > diurnas y el numero de horas nocturnas en un intervalo determinado de > tiempo, algo asi como > > -las horas diurnas van de 6:00 de la mañana a 19:00 de la noche > - las nocturnas de 19:00 a las 06:00 de la mañana > > de manera que si me dan intervalo por ejemplo : de 2014-04-20 15:00 a > 2014:04:20 24:00
Usa el tipo tsrange y el operador *. Lo que yo haría sería construir un CTE que retorne todos los intervalos de todos los tipos (diurnos y nocturnos) que estén entre la fecha menor y la mayor; y luego para cada uno el * te dirá cuantas horas de cada tipo en ese rango. Luego puedes hacer un sum() sobre todos ellos de cada tipo. No tengo tiempo de hacer un ejemplo completo ahora, pero la documentación empieza en http://www.postgresql.org/docs/devel/static/rangetypes.html -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
