SQL Server - 向计算年龄的表添加列

时间:2016-02-25 15:18:08

标签: sql sql-server

我想实现一个查询,将AGE列添加到我的表中,该列将使用已存在的日期列(mcsDate)计算每条记录的年龄。

有人可以帮我吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

创建计算列

CREATE TABLE [dbo].[DateDemo]
(
    [MDate] [date] NULL,
    [age]  AS (datediff(day, [MDATE], getdate())) -- This is a computed column
);

答案 1 :(得分:0)

如果你想按照人类生育日期的方式计算年龄,你应该按照人类计算年龄的方式来计算它。这真的不难。这是确保闰年没有错误的唯一方法。

CREATE TABLE DateTable (
    BirthDate DATE,
    Age AS YEAR(getdate()) - YEAR(BirthDate) - CASE 
        WHEN MONTH(BirthDate) > MONTH(getdate())
            OR (
                MONTH(BirthDate) = MONTH(getdate())
                AND DAY(BirthDate) > DAY(getdate())
                )
            THEN 1
        ELSE 0
        END
    );

请注意,如果您正在为国际课程编程,有些国家会使用East Asian age reckoning