Tout d'abord, vous devez utiliser timestamptz au lieu de timestamp chaque fois que vous travaillez avec plusieurs fuseaux horaires. Éviterait complètement le problème.
Détails :
Vous pouvez utilisez le AT TIME ZONE construire comme @NuLo suggère
, il peut fonctionne même, mais pas exactement comme décrit.
AT TIME ZONE convertit le type timestamp (timestamp without time zone ) à timestamptz (timestamp with time zone ) et vice versa. La représentation textuelle d'un timestamptz la valeur dépend du paramètre actuel du fuseau horaire de la session dans laquelle vous exécutez la commande. Ces deux timestamptz valeurs sont identiques à 100 % (indiquent le même point dans le temps) :
'2015-09-02 15:55:00+02'::timestamptz
'2015-09-02 14:55:00+01'::timestamptz
Mais la représentation textuelle n'est pas . L'affichage correspond à différents fuseaux horaires. Si vous prenez cette chaîne littérale et l'alimentez avec un timestamp type, la partie fuseau horaire est juste ignorée et vous vous retrouvez avec différent valeurs. Par conséquent, si vous exécutez votre COPY déclaration dans une session avec le même paramètre de fuseau horaire que votre timestamp d'origine les valeurs sont pour, l'opération suggérée se produit travailler.
La manière propre, cependant, est de produire un timestamp correct valeurs pour commencer en appliquant AT TIME ZONE deux fois :
SELECT event AT TIME ZONE 'my_target_tz' AT TIME ZONE 'my_source_tz', ...
FROM logtable
ORDER BY event desc;
'my_target_tz' est "votre propre fuseau horaire" et 'my_source_tz' le fuseau horaire du serveur cloud dans l'exemple. Pour vous assurer que l'heure d'été est respectée, utilisez des noms de fuseau horaire , pas les abréviations de fuseau horaire. La documentation :
Connexe :
- Prise en compte de l'heure d'été dans Postgres, lors de la sélection d'éléments planifiés
- Les noms de fuseaux horaires avec des propriétés identiques donnent des résultats différents lorsqu'ils sont appliqués à l'horodatage
Ou, bien mieux encore, utilisez timestamptz partout et cela fonctionne correctement automatiquement.