SQL Server中如何从同表日期列提取月份并新增month列
实现方法
要给表新增存储提取月份的列,你可以按照以下步骤操作:
- 新增字段
首先执行表结构修改语句,新增month列,因为月份取值范围是1-12,字段类型用TINYINT即可:
ALTER TABLE TableTIME ADD COLUMN month TINYINT NULL;
- 填充历史数据
执行更新语句,用你已经验证过的MONTH(columndate)逻辑,把现有行的月份值写入新列:
UPDATE TableTIME SET month = MONTH(columndate);
可选:配置自动同步的计算列
如果你希望后续新增、修改columndate字段值的时候,month列能自动同步更新不需要手动维护,可以直接将month创建为生成列(主流数据库均支持该特性),以MySQL为例:
ALTER TABLE TableTIME ADD COLUMN month TINYINT GENERATED ALWAYS AS (MONTH(columndate)) STORED;
注意:如果
columndate字段存在NULL值,对应行的month计算结果也会返回NULL,属于正常表现。
内容的提问来源于stack exchange,提问作者Sara
相关产品推荐
相关产品推荐

