From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Alessandra Campos Alfaro <alesscalf(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: determinar tipos de horas |
Date: | 2014-04-26 00:38:41 |
Message-ID: | 20140426003841.GF25695@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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 (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Edwin Quijada | 2014-04-28 15:54:57 | RE: Manejar versiones en base de datos |
Previous Message | Alessandra Campos Alfaro | 2014-04-26 00:16:20 | determinar tipos de horas |