Ответ 1
Он сохраняет текущее значение в локальном режиме и устанавливает часовой пояс в локальное смещение:
create table a(t timestamp without time zone, t2 timestamp with time zone);
insert into a(t) values ('2012-03-01'::timestamp);
update a set t2 = t;
select * from a;
t | t2
---------------------+------------------------
2012-03-01 00:00:00 | 2012-03-01 00:00:00-08
alter table a alter column t type timestamp with time zone;
select * from a;
t | t2
------------------------+------------------------
2012-03-01 00:00:00-08 | 2012-03-01 00:00:00-08
В соответствии с руководством для Изменить таблицу:
если [предложение USING] опущено, преобразование по умолчанию совпадает с преобразованием присваивания от старого типа данных к новому.
В соответствии с руководством для типов Дата/Время
Конверсии между временной меткой без часового пояса и временной меткой с часовым поясом обычно предполагают, что временная метка без значения часового пояса должна приниматься или указываться как местное время часового пояса. Для преобразования можно указать другой часовой пояс, используя
AT TIME ZONE
.