Isso ajudaria você?
Isso está usando a formatação de data integrada na função TO_CHAR. Eu não estou completamente em casa com o postgresql, então alguns ajustes podem precisar ser feitos.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Se a coluna "ano" ainda não existir, você terá que criá-la com um
ALTER TABLE
declaração primeiro ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Eu recomendaria verificar a documentação para o uso correto.
EDIT:Se você está se preocupando com o tempo que levaria para atualizar todas as linhas (vi que você comentou em outra resposta que tinha cerca de 2 milhões de registros), sugiro ler esta postagem .
Ele explica que pode ser mais rápido criar a tabela do zero com os dados em vez de atualizar cada linha.