Re: '1 year' = '360 days' ????

From: Arturo Llanquihuén Martinez <arturo(at)llanquihuen(dot)cl>
To: "Ricardo Perez Lopez" <ricpelo(at)hotmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: '1 year' = '360 days' ????
Date: 2004-10-22 14:04:08
Message-ID: 004d01c4b83f$fffd5760$fb0000c0@report
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

hola ricardo

de partida yo comenzaria con leerme todo lo referente a fechas y horas en la
documentacion aca.
http://www.postgresql.org/docs/7.4/static/datatype-datetime.html
http://www.postgresql.org/docs/7.4/static/functions-formatting.html
http://www.postgresql.org/docs/7.4/static/functions-datetime.html

referente a la
pregunta 1
no encuentro logico consultar por '1 year' ya que no es una constante,tu
mismo te das cuenta que depende de si es bisiesto o no, osea el sistema no
tiene referencia para calcular eso sin mas parametro.

pregunta 2
creo que leyendo la info te quedara mas claro como realizar tus consultas y
como dar formato a la entrada y salida de valores de fecha.

pregunta 3 yo usaria la funcion age.

Saludos.

----- Original Message -----
From: "Ricardo Perez Lopez" <ricpelo(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Thursday, October 21, 2004 1:42 PM
Subject: [pgsql-es-ayuda] '1 year' = '360 days' ????

> Saludos a toda la lista.
>
> Soy un principiante en PostgreSQL, que está actualmente liado aprendiendo
> cómo funcionan las fechas, las horas, los timestamps y los intervalos.
>
> El caso es que tengo tres preguntas que haceros:
>
> PRIMERA:
> --------------
>
> Resulta que he comprobado que, para PostgreSQL, un año son 360 días:
>
> SELECT '1 year'::timestamp = '360 days'::timestamp;
>
> ?column?
> -------------
> t
>
> Me he quedado de piedra. Yo creía que un año eran 365 días, o 366 si es
> bisiesto. ¿Es eso normal?
>
>
> SEGUNDA:
> ---------------
>
> Cuando quiero comprobar cuánto tiempo ha pasado entre dos fechas, tengo
dos
> opciones (que dan resultados diferentes):
>
> SELECT '30-09-04'::timestamp - '30-09-03'::timestamp,
> age('30-09-04'::timestamp, '30-09-03'::timestamp);
>
> ?column? | age
> -------------------------------
> @ 366 days | @ 1 year
>
> Los resultados son diferentes, porque si los comparamos:
>
> SELECT ('30-09-04'::timestamp - '30-09-03'::timestamp) =
> age('30-09-04'::timestamp, '30-09-03'::timestamp);
>
>
> ?column?
> --------------
> f
>
> Naturalmente, da falso, porque como digo en la primera pregunta, un año
para
> PostgreSQL consta de 360 días.
>
> La pregunta es: ¿es ésto normal? ¿Cuál de los dos métodos es el correcto,
o
> el más adecuado? ¿Restar timestamps? ¿O usar la función age?
>
>
> TERCERA:
> --------------
>
> Como comento en la segunda pregunta, cuando hago:
>
> SELECT '30-09-04'::timestamp - '30-09-03'::timestamp;
>
> el resultado es:
>
> ?column?
> --------------
> @ 366 days
>
> La pregunta es: ¿no existe alguna manera de "normalizar" el resultado, de
> forma que dijera:
>
> @ 1 year 1 day
>
> ?
>
> Me parece que sería más correcto "@ 1 year 1 day" que "@ 366 days". ¿No
hay
> alguna manera de conseguirlo?
>
> Gracias a todos de antemano.
>
> Ricardo.
>
> _________________________________________________________________
> Moda para esta temporada. Ponte al día de todas las tendencias.
> http://www.msn.es/Mujer/moda/default.asp
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envíe "unregister SuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera Munoz 2004-10-22 14:28:19 Re:
Previous Message tgutierrez 2004-10-22 14:03:10 eliminar archivos log