Ville dette hjælpe dig?
Dette bruger den indbyggede datoformatering i TO_CHAR-funktionen. Jeg er ikke helt hjemme med postgresql tho', så nogle justeringer skal muligvis foretages.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Hvis kolonnen "år" ikke allerede eksisterer, bliver du nødt til at oprette den med en ALTER TABLE
erklæring først
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Jeg vil anbefale at tjekke dokumentationen for den korrekte brug.
EDIT:Hvis du bekymrer dig om den tid, det ville tage at opdatere alle rækker (jeg så, at du kommenterede et andet svar, at du havde omkring 2 millioner poster), så foreslår jeg, at du læser dette indlæg .
Det forklarer, at det kan være hurtigere at oprette tabellen fra bunden med dataene i stedet for at opdatere hver eneste række.