Re: Convertir un Numero Entero en una Fecha

From: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Convertir un Numero Entero en una Fecha
Date: 2007-07-16 00:48:16
Message-ID: 970831.746.qm@web63714.mail.re1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


--- Alvaro Herrera <alvherre(at)commandprompt(dot)com>
escribió:

> Gabriel Hermes Colina Zambra escribió:
> > Estoy tratando de responder otro theread en la
> lista y
> > me encontre con la dificultad de no conseguir la
> > funcion que me devuelva la fecha 15-07-2007 cuando
> la
> > paso en cantidad de dias 39278 o que me devuelva
> > 10-11-1966 cuando le paso en cantidad de dias
> 24421,
> > bueno espero haberme hecho entender y agradezco la
> > respuesta asi puedo culminar una funcion para
> > contestar otro theread.
>
> Un experimento rapido sugiere que la fecha que
> consideras como epoch
> es el 30 de diciembre, 1899:
>
> alvherre=# select '15-07-2007'::date - 39278 * '1
> day'::interval;
> ?column?
> ---------------------
> 1899-12-30 00:00:00
> (1 row)
>
> alvherre=# select '10-11-1966'::date - 24421 * '1
> day'::interval;
> ?column?
> ---------------------
> 1899-12-30 00:00:00
> (1 row)
>
>
> Por lo tanto la conversion inversa se hace sumando
> la cantidad de dias a
> esa fecha:
>
> alvherre=# select '1899-12-30'::date + 39278;
> ?column?
> ------------
> 2007-07-15
> (1 row)
>
> alvherre=# select '1899-12-30'::date + 24421;
> ?column?
> ------------
> 1966-11-10
> (1 row)
>
Muchisimas gracias por la respuesta.

> Me llama mucho la atencion que la aritmetica señale
> al epoch como 2 dias
> antes de 1900-01-01. Es demasiada coincidencia. Me
> pregunto si habra
> una pifia en la aritmetica de Postgres o del otro
> programa que usaste
> para obtener esos numeros de dias.
Si, a mi tambien me extanio un poco, tambien y busque
algo en la wikipedia, para ver si las correcciones de
desviacion horaria y esas cosas, por la cual se han
ajustado los calendarios han influyendo, todavia no me
doy cuenta, por lo que lei tambien ahi el proximo
seria ajuste en el 3010 mas o menos, pero hasta ahi
estoy dando bolazos por que no tengo nada cierto mas
que mi imaginacion de relacionar esto con lo leido, no
me detuve hacer esos calculos.
A proposito el otro programa que use fue EXCEL, asi
que debe haber una razon a esa supuesta pifia y me la
explico por el desajuste del calendario.

>
> PD: no se llama "theread", se llama "thread" y
> significa "hilo".

Si muchas veces tengo este tipo de pifias, vas a ver
que en algunos lo pongo bien y en otro lo pongo mal,
debido a que estoy erroneamente acostumbrado a
escribir como lo pronuncio.
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.
> --
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 7: no olvides aumentar la configuración del
> "free space map"
>

Alvaro.
Pense que podia haber una funcion que ya te la
devolviera en fecha algo como to_date(integer), para
este caso la voy a crear basado en lo que tu me
expones select '1899-12-30'::date + $1;
Que a su ves sea llamada desde la funcion que estoy
haciendo para contestar.

Muchas gracias y un abrazo.

Atte.
Desde Uruguay
Gabriel Hermes Colina Zambra

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Agustin Casiva 2007-07-16 03:57:13 Re: java.sql.SQLException: Error in allocating a connection
Previous Message Alvaro Herrera 2007-07-15 23:44:55 Re: leyendo las estructuras del postgresql