El problema parece no estar relacionado con Amazon RDS:tiene que ver con la convención utilizada por PostgreSQL. En este caso, usted hace tener el nombre de la zona horaria hacia atrás. Te refieres a 'UTC-01'
donde escribes .'UTC+01'
De el manual :
Entonces, la cadena de zona horaria utilizada para SET TIME ZONE
(y la visualización de SHOW timezone
, según corresponda) o el AT TIME ZONE
construcción use el signo opuesto de lo que se muestra en timestamp
(with time zone
) literales! Ese es un desacuerdo muy desafortunado entre el estándar ISO y SQL por un lado y POSIX por el otro. (Creo que POSIX tiene la culpa). Ver:
Pero 'CET'
o 'UTC-01'
ambos siguen siendo potencialmente incorrectos para París porque no están tomando reglas para el horario de verano en cuenta.
(DST es uno de los conceptos más tontos en la historia de la humanidad.)
París (como la mayor parte de Europa) usa CET durante el invierno y CEST durante el verano. Tus pruebas con 'CET'
acaba de pasar a trabajar en noviembre. Si intenta lo mismo en verano, obtendrá un resultado incorrecto.
Para estar seguro, utilice siempre el nombre de la zona horaria 'Europe/Paris'
, que considera las reglas de horario de verano. La llamada es más cara.
La función current_time
tiene en cuenta las reglas del horario de verano si su configuración de zona horaria implica alguna. Pero 'UTC-01'
es un desplazamiento de tiempo simple. Nunca uso el tipo de datos time with time zone
o current_time
para empezar. El manual una vez más:
Considere:
SELECT '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'UTC+01' AS plus_wrong
, '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'UTC-01' AS minus_right
SELECT '2016-01-01 00:00+0'::timestamptz AT TIME ZONE 'CET' AS cet_winter
, '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'CEST' AS cest_summer
, '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'CET' AS cet_no_dst -- CET wrong!
SELECT '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'Europe/Paris' AS paris_summer
, '2016-01-01 00:00+0'::timestamptz AT TIME ZONE 'Europe/Paris' AS paris_winter
Relacionado:
-
Ignorar las zonas horarias por completo en Rails y PostgreSQL
-
Almacenamiento de zona horaria en el tipo de datos "timestamp with zona horaria"