Điều này có giúp được gì cho bạn không?
Điều này đang sử dụng định dạng ngày có sẵn trong hàm TO_CHAR. Tôi không hoàn toàn ở nhà với postgresql tho ', vì vậy có thể cần phải thực hiện một số chỉnh sửa.
UPDATE
TABLENAME
SET
year = TO_CHAR(date, 'YYYY'),
date = TO_CHAR(date, 'YYYYMM');
Nếu cột "năm" chưa tồn tại, bạn sẽ phải tạo nó bằng ALTER TABLE
tuyên bố đầu tiên
ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};
Tôi khuyên bạn nên kiểm tra tài liệu để sử dụng đúng.
CHỈNH SỬA:Nếu bạn lo lắng về thời gian cần thiết để cập nhật tất cả các hàng (tôi thấy bạn đã nhận xét về một câu trả lời khác mà bạn có khoảng 2 triệu bản ghi), thì tôi khuyên bạn nên đọc this post .
Nó giải thích rằng có thể nhanh hơn để tạo bảng từ đầu với dữ liệu thay vì cập nhật từng hàng.