web-dev-qa-db-fra.com

Horodatage de la mise à jour PostgreSQL sans fuseau horaire pour avoir un fuseau horaire

Lorsque j'ai créé la table, une colonne d'horodatage sans fuseau horaire a été créée. Tout le temps importé est dans UTC. Maintenant, je veux ajouter explicitement les informations de fuseau horaire, et j'ai modifié la colonne

ALTER TABLE review ALTER COLUMN review_time TYPE TIMESTAMP WITH TIME ZONE USING review_time AT TIME ZONE 'UTC';

La sélection des données existantes n'affiche pas les informations de fuseau horaire ajoutées

review_time
2017-07-28 02:25:44
2017-07-28 03:10:35
2017-07-28 03:11:32
2017-07-28 03:11:35
2017-07-28 03:11:38
2017-07-28 03:11:41
2017-07-28 18:54:54

Dois-je exécuter une instruction UPDATE sur les données existantes, et si oui, quelle est la syntaxe?

Mise à jour 1

La sortie qui manque des informations de fuseau horaire est due à l'application elle-même (SQLWorkbenchJ). L'interrogation à partir de psql affichera le fuseau horaire

mydb # SELECT review_time FROM review;
      review_time       
------------------------
 2017-08-20 08:00:02+08
 2017-07-27 00:45:33+08
 2017-07-27 00:45:37+08
 2017-07-28 02:24:03+08
 2017-07-28 02:24:27+08
 2017-07-28 02:24:31+08
 2017-07-28 02:25:31+08
3
hanxue

Je ne vois pas non plus le problème

Créez des exemples de données,

CREATE TABLE foo(ts) AS VALUES (
  now()::timestamp without time zone
);

Affichez-le,

TABLE foo;
             ts             
----------------------------
 2017-09-30 14:25:24.954084
(1 row)

Vous pouvez voir dans ce qui précède aucun tz en sortie. Modifions maintenant pour utiliser un with time zone.

ALTER TABLE foo
  ALTER COLUMN ts
  SET DATA TYPE timestamp with time zone;

Voici la sortie, notez que vous avez un tz de -05

TABLE foo;

              ts               
-------------------------------
 2017-09-30 14:25:24.954084-05
(1 row)

Quel est votre résultat de SHOW TIME ZONE?

Fait intéressant, je vois de quoi vous parlez,

# SELECT now()::timestamp with time zone::timestamp;
            now             
----------------------------
 2017-09-30 14:27:53.061616
(1 row)

Cependant, nous devons savoir ce que vous demandez.

2
Evan Carroll