Re: Ayuda con horas

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: FRANCISCO JOSE PALAO VILLANUEVA <fjpv_2000(at)yahoo(dot)es>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con horas
Date: 2014-04-04 19:30:15
Message-ID: 20140404193015.GC5822@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

FRANCISCO JOSE PALAO VILLANUEVA escribió:
> Hola,
> soy novato con las funciones de postgresql y necesito su ayuda, dentro de una query he de contar los pedidos entregados correctamente en su franja horaria de entrega con un margen de 15 minutos antes y después, en fin les expreso en pseudocódigo lo que necesito:
>
> sum(case when (hora1entrega-15 minutos <= hora_entrega_real  and hora2entrega+15minutos >= hora_entrega_real )  then 1 else 0 end) as entregaok

Creo que lo más simple es que uses BETWEEN:

CASE WHEN
hora_entrega_real BETWEEN
hora1entrega - interval '15 min' AND
hora2entrega + interval '15 min'
THEN 1 ELSE 0 END

Ojo con los NULL.

La otra opción sería usar un tipo de dato de rango; para este único caso
puede ser excesivo (tanques antimoscas y todo eso).

Otrosí: ¿qué importa si un pedido se entrega 20 minutos antes de lo
presupuestado?

--
Á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

  • Ayuda con horas at 2014-04-04 19:09:10 from FRANCISCO JOSE PALAO VILLANUEVA

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gilberto Castillo 2014-04-04 20:19:23 Re: Ayuda con horas
Previous Message FRANCISCO JOSE PALAO VILLANUEVA 2014-04-04 19:27:25 Re: Ayuda con horas