RE: Timestamp como primary key

From: "Jorge Romeo" <jromeo(at)samca(dot)com>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Timestamp como primary key
Date: 2009-05-27 13:47:00
Message-ID: 3BFE4B54139F264587EF9BC8EB40185C05F04296@samca-nt-12.samca.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Entonces basta con cambiar el tipo de las fechas a "timestamp with time zone" ¿no?

Otra pregunta, ya por curiosidad:

¿Quién se encarga de la traducción a hora local, el SGBD o el driver de conexión?

Jorge

-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)alvh(dot)no-ip(dot)org]
Enviado el: miércoles, 27 de mayo de 2009 15:39
Para: Jorge Romeo
CC: Jaime Casanova; pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Timestamp como primary key

Jorge Romeo escribió:
> Pues no había caído en eso. En el sistema actual dan problemas, que se solucionan
> "a mano" pero en este caso se perderían hasta dos horas de datos, pues la
> inserción daría error...
>
> Se me ocurre que podría introducir la hora UTC, que no cambia. Luego tendría
> que tenerlo en cuenta en las aplicaciones que usen los datos.
>
> ¿Qué me sugieres? Estoy empezando y aun no me había
> encontrado con este problema.

Mi sugerencia es que uses el tipo timestamp with time zone (también
conocido como timestamptz)

Lo que hace este tipo es "rotar" la hora actual a UTC según el huso
horario actual (TimeZone), y guardar en UTC. Al extraer, "rota" desde
UTC hasta el huso horario que corresponde para esa fecha/hora y al
TimeZone que está en vigor. Es decir, si ingresas algo en +1 y luego lo
mira un cliente que está en +5, van a obtener la misma hora pero cada
uno en su propio huso horario.

Lo otro es que la aritmética funciona correctamente, o sea si restas dos
timestamptz obtienes la cantidad "real" de horas que transcurrieron.

--
Alvaro Herrera Developer, http://www.PostgreSQL.org/
"It takes less than 2 seconds to get to 78% complete; that's a good sign.
A few seconds later it's at 90%, but it seems to have stuck there. Did
somebody make percentages logarithmic while I wasn't looking?"
http://smylers.hates-software.com/2005/09/08/1995c749.html
--
TIP 8: explain analyze es tu amigo

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-05-27 13:57:36 Re: Donde colocar en la wiki
Previous Message Alvaro Herrera 2009-05-27 13:38:59 Re: Timestamp como primary key