You need to enable JavaScript to run this app. PostgreSQL如何从日期列提取年份并更新到同表新增的year列
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何从日期列提取年份并更新到同表新增的year列

实现方案

直接执行UPDATE语句即可完成同表字段的批量更新,不需要额外做关联匹配,语句如下:

UPDATE test_tb
SET year = EXTRACT(YEAR FROM tdate);

如果你的year字段定义为整数类型,对提取结果做类型转换即可:

UPDATE test_tb
SET year = EXTRACT(YEAR FROM tdate)::INTEGER;

注意事项

  • 若表数据量较大,建议先在事务中操作验证,避免误修改数据:
    • 开启事务:BEGIN;
    • 执行上述更新语句
    • 验证更新结果是否符合预期:SELECT tdate, year FROM test_tb LIMIT 20;
    • 确认无误提交事务:COMMIT;
    • 若结果错误可直接回滚:ROLLBACK;
  • 如果你使用的是PostgreSQL 12及以上版本,还可以直接将year列设置为生成列,后续插入、更新数据时会自动维护年份值,无需手动执行更新语句:
    -- 还未创建year列时可直接执行该语句
    ALTER TABLE test_tb ADD COLUMN year INTEGER 
    GENERATED ALWAYS AS (EXTRACT(YEAR FROM tdate)::INTEGER) STORED;
    

内容的提问来源于stack exchange,提问作者Num3illia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 13:06:07