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

Formato de fecha UTC de Postgres y emisión de época, inversión de signo

esto

1970-01-01 00:00:00+01

es una marca de tiempo ISO 8601 con un desplazamiento de +1 hora y +1 significa al este de Greenwich. Las compensaciones en estos

01-01-1970 00:00:00 UTC+01
1970-01-01 00:00:00 UTC+01
1970-01-01 00:00:00 XXX+01
1970-01-01 00:00:00 HAHA+01
1970-01-01 00:00:00 Pancakes+01

se interpretará como zonas horarias de estilo POSIX donde +1 significa oeste de Greenwich:

PostgreSQL aceptará especificaciones de zona horaria de estilo POSIX de la forma STDoffset o STDoffsetDST, donde STD es una abreviatura de zona, offset es un desplazamiento numérico en horas al oeste de UTC

y esos incluso vienen con una advertencia:

Se debe tener cuidado de que la función de zona horaria de estilo POSIX pueda conducir a la aceptación silenciosa de entradas falsas, ya que no se verifica la razonabilidad de las abreviaturas de zona. Por ejemplo, SET TIMEZONE TO FOOBAR0 funcionará, dejando el sistema efectivamente usando una abreviatura bastante peculiar para UTC. Otro problema a tener en cuenta es que en los nombres de zona horaria POSIX, se utilizan compensaciones positivas para las ubicaciones al oeste de Greenwich. En cualquier otro lugar, PostgreSQL sigue la convención ISO-8601 de que las compensaciones de zona horaria positivas están al este de Greenwich.

Tenga en cuenta la diferencia entre el oeste y el este.