Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group