Това ще ви помогне ли?
Това използва вграденото форматиране на датата във функцията TO_CHAR. Не съм напълно у дома с postgresql, така че може да се наложи да се направят някои настройки.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Ако колоната „година“ все още не съществува, ще трябва да я създадете с ALTER TABLE
първо изявление
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Бих препоръчал да проверите документацията за правилна употреба.
РЕДАКТИРАНЕ:Ако се притеснявате за времето, необходимо за актуализиране на всички редове (видях, че коментирате друг отговор, че имате около 2 милиона записа), тогава предлагам да прочетете тази публикация .
Той обяснява, че може да е по-бързо да създадете таблицата от нулата с данните, вместо да актуализирате всеки един ред.