You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何从DATE列提取年份并插入新列

如何从DATE列提取年份并创建新列

1. 新增存储年份的列

先给你的表添加一个专门存年份的列,推荐用INT类型(方便后续数值计算),把your_table_name替换成你的实际表名:

ALTER TABLE your_table_name ADD COLUMN year_col INT;

2. 批量填充年份数据

你之前用的YEAR()或EXTRACT()不仅能用于查询,也可以在UPDATE语句里批量写入数据:

  • MySQL/MariaDB 写法:
UPDATE your_table_name SET year_col = YEAR(date);
  • PostgreSQL 写法:
UPDATE your_table_name SET year_col = EXTRACT(YEAR FROM date)::INT;
  • SQL Server 写法:
UPDATE your_table_name SET year_col = DATEPART(YEAR, date);

3. 进阶:创建自动同步的生成列(推荐)

如果你的数据库支持生成列(MySQL 5.7+、PostgreSQL 12+、SQL Server 2016+),可以直接创建一个自动跟随date列更新的年份列,无需手动执行UPDATE,后续新增或修改date数据时,年份列会自动同步:

  • MySQL/MariaDB:
ALTER TABLE your_table_name ADD COLUMN year_col INT GENERATED ALWAYS AS (YEAR(date)) STORED;
  • PostgreSQL:
ALTER TABLE your_table_name ADD COLUMN year_col INT GENERATED ALWAYS AS (EXTRACT(YEAR FROM date)::INT) STORED;
  • SQL Server:
ALTER TABLE your_table_name ADD COLUMN year_col AS DATEPART(YEAR, date) PERSISTED;

注意要点

  • 操作前建议备份表数据,避免误操作导致数据丢失;
  • 如果是大表,UPDATE语句执行时间可能较长,尽量在业务低峰期操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:31:07