Pomohlo by vám to?
Toto používá vestavěné formátování data ve funkci TO_CHAR. Nejsem úplně doma s postgresql tho', takže možná bude potřeba provést nějaké úpravy.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Pokud sloupec "rok" ještě neexistuje, budete jej muset vytvořit pomocí ALTER TABLE
nejprve prohlášení
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Doporučuji zkontrolovat dokumentaci pro správné použití.
EDIT:Pokud se obáváte času, který by trvala aktualizace všech řádků (viděl jsem, že jste komentovali jinou odpověď, že jste měli kolem 2 milionů záznamů), doporučuji přečíst tento příspěvek .
Vysvětluje, že může být rychlejší vytvořit tabulku od začátku s daty namísto aktualizace každého řádku.