Изменение значения часового пояса данных

Я должен импортироватьданные без информации о часовом поясе в нем (однако я знаю конкретный часовой пояс данных, которые я хочу импортировать), но мне нужноtimestamp with time zone формат в базе данных. После того, как я импортирую его и установлю тип данных временной меткиtimestamp with time zonePostgres автоматически предположит, что данные в таблице взяты из моего часового пояса, и назначит ему часовой пояс. К сожалению, данные, которые я хочу импортировать, не из моих временных рамок, поэтому это не работает.

База данных также содержит данные с разными часовыми поясами. Однако часовой пояс в одной таблице всегда одинаков.

Теперь я мог бы установить часовой пояс базы данных на часовой пояс данных, которые я хочу импортировать перед импортом данных (используяSET time zone команда) и измените его обратно на мой часовой пояс, как только импорт будет завершен, и я уверен, что уже сохраненные данные не будут затронуты изменением часового пояса базы данных. Но это кажется довольно грязным подходом и может вызвать проблемы позже.

Интересно, есть ли более элегантный способ указать часовой пояс для импорта, не имея данных о часовом поясе в самих данных?

Также я не нашел способа редактировать информацию о часовом поясе после импорта. Есть ли способ не преобразовать, а просто отредактировать часовой пояс для всей таблицы, предполагая, что вся таблица имеет одинаковое смещение часового пояса (то есть, если при вводе / импорте данных был назначен неправильный часовой пояс)?

Редактировать:

Мне удалось указать часовой пояс при импорте, вся команда была:

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

Затем данные импортируются с использованием часового пояса сеанса. Я предполагаю, что это не влияет ни на какие другие запросы к базе данных в то же время от других соединений?

Изменить 2:

Я узнал, как изменить часовой пояс таблицы впоследствии:

PostgreSQL обновляет смещение часового пояса

Я предполагаю, что более элегантно изменить часовой пояс таблицы после импорта, чем использовать сеанс для временного изменения местного часового пояса. Предполагая, что вся таблица имеет одинаковый часовой пояс, конечно.

Таким образом, код теперь будет выглядеть примерно так:

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

Ответы на вопрос(1)

Ваш ответ на вопрос