From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
Cc: | Arcel Labrada Batista <alabradab(at)uci(dot)cu>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: trabajo con fechas |
Date: | 2009-12-07 18:21:04 |
Message-ID: | 20091207182104.GK3552@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jaime Casanova escribió:
> 2009/12/4 Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
> >
> > Ahora caigo en cuenta que esto falla al cambiar de año
> >
>
> Aja! esta es la manera:
>
> with q as (
> select *
> from generate_series('2009-10-01 00:00:00'::timestamp with time zone,
> '2010-12-04 00:00:00'::timestamp with time zone,
> '1 day'::interval) as foo
> )
> select * from q
> where extract(week from foo + '1 week'::interval) = extract(week from
> current_date)
A mí no me gusta mucho esta solución, porque funciona ahora pero el 2011
va a dejar de funcionar. Además tienes que llenar un tuplestore con
todos los días de un período de más de un año, para luego tener que
hacer un join de ese tuple store (==> ineficiente). La otra solución
que usaba aritmética para encontrar exactamente la semana que querías se
ve un poco más compleja pero es más precisa.
Creo que lo ideal sería expresar esa otra solución usando WITH;
seguramente se vería más bonito :-)
--
Alvaro Herrera Vendo parcela en Valdivia:
http://valdivia.vivastreet.cl/loteos-lotes+valdivia/parcela-en-cabo-blanco--valdivia/19288372
"I love the Postgres community. It's all about doing things _properly_. :-)"
(David Garamond)
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2009-12-07 18:47:50 | Re: trabajo con fechas |
Previous Message | Pablo Braulio | 2009-12-07 17:35:14 | Re: Clonar tabla y su contenido. |