Re: DIA DE SEMANA

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Jaime Casanova <systemguards(at)gmail(dot)com>, david aceituno <davidaceituno(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: DIA DE SEMANA
Date: 2006-01-27 19:23:18
Message-ID: c2d9e70e0601271123g2e1a8ccdo8041065eefb0af8c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 1/27/06, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> Jaime Casanova escribió:
> > On 1/27/06, david aceituno <davidaceituno(at)gmail(dot)com> wrote:
> > > hola nuevamente
> > >
> > > espero no molestar demasiado, gracias a un miembro de la lista ya se como
> > > sacar el numero de semana (anual) de una fecha. Existe alguna forma de que
> > > yo entregue el numero de semana del año y me devuelva las fechas que
> > > corresponden a ese numero de semana ?
> >
> > Pues parece que no te estas explicando bien, la respuesta que te
> > dieron parece ser lo que pedistes...
>
> No veo por que dices eso, si ya tiene la respuesta a la pregunta
> anterior y ahora esta haciendo otra pregunta.
>

entonces el que no entendio fui yo... la gripe me cogio fuerte ;)
disculpa david

> La respuesta yo creo que iria por hacer algo asi como tomar el primer
> dia de la primera semana del año, luego sumarle '7 days'::interval *
> numero-de-semana. Con eso obtienes el primer dia de esa semana. El
> ultimo dia de esa semana es '7 days'::interval * (numero-de-semana + 1)
> - '1 day'::interval
>
> La parte dificil es tomar el primer dia de la primera semana. No se
> bien como se hace eso. (La respuesta trivial es el primero de enero,
> pero me parece que no es correcto. Hay que leer la documentacion de
> extract(week) para saberlo.)
>

Por definicion, la primera semana del año es la que contiene al 4 de enero...

el 1 de enero del 2006 fue parte de la ultima semana (domingo fue el
ultimo dia) del año 2005

pruebas=# select extract(week from '2006-01-01'::date);
date_part
-----------
52
(1 fila)

y el 2 de enero el primer dia de la primera semana del 2006

pruebas=# select extract(week from '2006-01-02'::date);
date_part
-----------
1
(1 fila)

siendo asi parece que esto funciona:

pruebas=# select '2006-01-04'::date - (extract(dow from
'2006-01-04'::date)::int - 1);
?column?
------------
2006-01-02
(1 fila)

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2006-01-27 20:55:56 Re: Problema con pg_dump
Previous Message Alvaro Herrera 2006-01-27 18:26:30 Re: Resultados de PGCluster y slony