Re: determinar tipos de horas

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

In response to

Browse pgsql-es-ayuda by date

  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