Skulle detta hjälpa dig?
Detta använder den inbyggda datumformateringen i TO_CHAR-funktionen. Jag är inte helt hemma med postgresql tho', så vissa justeringar kan behöva göras.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Om kolumnen "år" inte redan finns måste du skapa den med en ALTER TABLE
uttalande först
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Jag skulle rekommendera att du kontrollerar dokumentationen för korrekt användning.
EDIT:Om du är orolig för tiden det skulle ta att uppdatera alla rader (jag såg att du kommenterade ett annat svar att du hade cirka 2 miljoner poster), så föreslår jag att du läser det här inlägget .
Det förklarar att det kan vara snabbare att skapa tabellen från början med data istället för att uppdatera varje rad.