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

如何给临时表添加由出生日期计算的age列并完成赋值?

临时表中计算年龄并写入新增列的解决方案

你当前的操作仅通过SELECT语句计算出了年龄值,但并未将计算结果写入到临时表的age列中,所以查询age列会显示NULL。需要补充UPDATE更新操作来填充数据,完整步骤如下:

  1. 新增age列(你已完成这一步)
ALTER TABLE #DEMOGRAPHICS
ADD age INT;
  1. 计算年龄并写入age列
UPDATE #DEMOGRAPHICS
SET age = DATEDIFF(YY, BIRTH_DATE, GETDATE()) - 
    CASE 
        WHEN MONTH(BIRTH_DATE) > MONTH(GETDATE()) 
             OR (MONTH(BIRTH_DATE) = MONTH(GETDATE()) AND DAY(BIRTH_DATE) > DAY(GETDATE())) 
        THEN 1
        ELSE 0
    END;
  1. 验证结果
SELECT BIRTH_DATE, age FROM #DEMOGRAPHICS;

如果后续需要频繁使用年龄值,也可以考虑将age设置为计算列,这样不需要手动更新,数据会自动同步:

ALTER TABLE #DEMOGRAPHICS
ADD age AS (
    DATEDIFF(YY, BIRTH_DATE, GETDATE()) - 
    CASE 
        WHEN MONTH(BIRTH_DATE) > MONTH(GETDATE()) 
             OR (MONTH(BIRTH_DATE) = MONTH(GETDATE()) AND DAY(BIRTH_DATE) > DAY(GETDATE())) 
        THEN 1
        ELSE 0
    END
) PERSISTED;

注:PERSISTED关键字会将计算结果物理存储在表中,提升查询性能,适合数据不频繁变更的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:23:08