Я пытаюсь преобразовать столбец и сохранить данные в указанном часовом поясе. У меня есть скрипт, но в конце он выдает ошибку SELECT
.
ALTER TABLE schema.table
ALTER COLUMN column_date TYPE TIMESTAMP WITH TIME ZONE
USING column_date AT TIME ZONE (SELECT value FROM schema.table WHERE id = 'timezone');
ERROR: cannot use subquery in transform expression
У меня сохранены часовые пояса, но попытка вернуть их назад для применения к сценарию создает проблему. Я знаю, что могу просто жестко закодировать часовой пояс как «EST | CST | PST» и т. Д., Но у меня есть несколько баз данных, к которым необходимо применить (с несколькими изменениями на БД), следовательно, в конце требуется SELECT
. Есть ли способ сделать это?
Я обдумал несколько вопросов на эту тему; в то время как некоторые подошли близко, они не совсем отвечают потребностям (мои извинения, если это дубликат, я потратил время на поиск ответа).
[РЕШЕНО]: использование двух отдельных запросов
ALTER TABLE schema.table
ALTER COLUMN column_date TYPE TIMESTAMP WITH TIME ZONE;
UPDATE schema.table
SET column_date = column_date AT TIME ZONE
(SELECT value FROM schema.table WHERE id = 'timezone');