Apakah ini membantu Anda?
Ini menggunakan pemformatan tanggal bawaan dalam fungsi TO_CHAR. Saya tidak sepenuhnya nyaman dengan postgresql, jadi beberapa penyesuaian mungkin perlu dilakukan.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Jika kolom "tahun" belum ada, Anda harus membuatnya dengan ALTER TABLE
pernyataan dulu
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Sebaiknya periksa dokumentasi untuk penggunaan yang benar.
EDIT:Jika Anda khawatir tentang waktu yang diperlukan untuk memperbarui semua baris (saya melihat Anda mengomentari jawaban lain bahwa Anda memiliki sekitar 2 juta catatan), maka saya sarankan membaca postingan ini .
Ini menjelaskan bahwa mungkin lebih cepat untuk membuat tabel dari awal dengan data daripada memperbarui setiap baris.