Zou dit je kunnen helpen?
Dit maakt gebruik van de ingebouwde datumnotatie in de TO_CHAR-functie. Ik ben niet helemaal thuis met postgresql, dus misschien moet er wat worden aangepast.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Als de kolom "jaar" nog niet bestaat, moet u deze maken met een ALTER TABLE
verklaring eerst
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Ik raad aan om de documentatie te raadplegen voor het juiste gebruik.
EDIT:Als je je zorgen maakt over de tijd die het kost om alle rijen bij te werken (ik zag dat je op een ander antwoord reageerde dat je ongeveer 2 miljoen records had), dan raad ik aan dit bericht .
Het legt uit dat het misschien sneller is om de tabel helemaal opnieuw te maken met de gegevens in plaats van elke rij bij te werken.