sql >> Base de Datos >  >> RDS >> PostgreSQL

Fecha y hora en UTC:¿cómo almacenarlos en postgres?

usa timestamptz almacenará su marca de tiempo en UTC. y se lo mostrará al cliente según su configuración regional.

https://www.postgresql.org/docs/current/static /tipo-de-datos-fecha-hora.html

actualizado con otro buen punto de Lukasz , tenía que mencionar:

No hacerlo llevaría a la fecha '2017-12-31' con la hora '23:01:01' en otra zona horaria, de hecho, no solo sería una hora diferente, sino una fecha diferente con todo el AÑO, MES y DÍA diferentes

otra actualización Según Laurenz aviso, no olvide la cita de los documentos anterioresUn valor de entrada que tiene una zona horaria explícita especificada se convierte a UTC usando el desplazamiento apropiado para esa zona horaria . Lo que significa que debe administrar las fechas de entrada con cuidado. Por ejemplo:

t=# create table t(t timestamptz);
CREATE TABLE
t=# set timezone to 'GMT+5';
SET
t=# insert into t select '2017-01-01 00:00:00';
INSERT 0 1
t=# insert into t select '2017-01-01 00:00:00' at time zone 'UTC';
INSERT 0 1
t=# insert into t select '2017-01-01 00:00:00+02';
INSERT 0 1
t=# select * from t;
           t
------------------------
 2017-01-01 00:00:00-05
 2017-01-01 05:00:00-05
 2016-12-31 17:00:00-05
(3 rows)