我想实现一个查询,将AGE列添加到我的表中,该列将使用已存在的日期列(mcsDate)计算每条记录的年龄。
有人可以帮我吗?
谢谢!
答案 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。