Zmiana wartości strefy czasowej danych

Muszę zaimportowaćdane bez informacji o strefie czasowej w nim (znam jednak konkretną strefę czasową danych, które chcę importować), ale potrzebujętimestamp with time zone format w bazie danych. Po zaimportowaniu i ustawieniu typu danych datownika natimestamp with time zonePostgres automatycznie założy, że dane w tabeli pochodzą z mojej strefy czasowej i przypisz do niej moją strefę czasową. Niestety dane, które chcę zaimportować, nie pochodzą z moich ram czasowych, więc to nie działa.

Baza danych zawiera również dane z różnymi strefami czasowymi. Jednak strefa czasowa w obrębie jednej tabeli jest zawsze taka sama.

Teraz mogę ustawić strefę czasową bazy danych na strefę czasową danych, które chcę zaimportować, przed zaimportowaniem danych (za pomocąSET time zone komendą) i zmień ją z powrotem na strefę czasową po zakończeniu importu, a jestem pewien, że zmiana danych bazy danych nie będzie miała wpływu na już zapisane dane. Ale wydaje się, że to dość brudne podejście i może później powodować problemy.

Zastanawiam się, czy istnieje bardziej elegancki sposób na określenie strefy czasowej importu bez danych strefy czasowej w samych danych?

Nie znalazłem też sposobu edycji informacji o strefie czasowej po zaimportowaniu. Czy istnieje sposób, aby nie konwertować, ale po prostu edytować strefę czasową dla całej tabeli, zakładając, że cała tabela ma takie samo przesunięcie strefy czasowej (tj. Jeśli przy wprowadzaniu / importowaniu danych przypisano niewłaściwą strefę czasową)?

Edytować:
Po zaimportowaniu udało mi się określić strefę czasową, cała komenda to:

set session time zone 'UTC';
COPY tbl FROM 'c:\Users\Public\Downloads\test.csv' DELIMITERS ',' CSV;
set session time zone 'CET';

Dane są następnie importowane przy użyciu strefy czasowej sesji. Zakładam, że nie ma to wpływu na inne zapytania w bazie danych w tym samym czasie z innych połączeń?

Edytuj 2:
Dowiedziałem się, jak później zmienić strefę czasową stołu:
Przesunięcie strefy czasowej aktualizacji PostgreSQL

Przypuszczam, że bardziej elegancko jest zmienić strefę czasową tabeli po zaimportowaniu, a następnie użyć sesji, aby tymczasowo zmienić lokalną strefę czasową. Zakładając, że cała tabela ma oczywiście tę samą strefę czasową.

Kod byłby teraz czymś w rodzaju:

COPY tbl FROM 'c:\Users\Public\Downloads\test.csv' DELIMITERS ',' CSV;
UPDATE tbl SET <tstz_field> = <tstz_field> AT TIME ZONE '<correct_time_zone>';

questionAnswers(1)

yourAnswerToTheQuestion