¿Te ayudaría esto?
Esto está utilizando el formato de fecha incorporado en la función TO_CHAR. Aunque no estoy del todo cómodo con postgresql, por lo que es posible que sea necesario realizar algunos ajustes.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Si la columna "año" aún no existe, deberá crearla con un ALTER TABLE
declaración primero
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Recomendaría revisar la documentación para el uso correcto.
EDITAR:si le preocupa el tiempo que llevaría actualizar todas las filas (vi que comentó en otra respuesta que tenía alrededor de 2 millones de registros), le sugiero que lea esta publicación .
Explica que podría ser más rápido crear la tabla desde cero con los datos en lugar de actualizar todas y cada una de las filas.