2

在此处输入图像描述

我在数据库中有一个已经包含数据的表,但是现在我添加了一个名为的新列Vol_Age并且它具有NULL价值。我希望通过计算年龄来填充该列,数据来自Vol_Date_of_Birth列,我需要一个计算年龄并将其插入Vol_Age列的查询。我们可以使用Insertor Update,我们怎么做?!

请原谅我的英语。谢谢

4

4 回答 4

3

请记住,由于您将该列添加到数据库中,该列中的任何值都将保留其值。随着时间的推移,您将需要不断更新数据库中的值。

另一种方法是删除该列并使其成为计算列。这样,年龄是在查询时计算的,而不是从上次更新时计算的。

ALTER TABLE tbname ADD Vol_Age AS DATEDIFF(YEAR, Vol_Date_Of_Birth, GETDATE())
于 2013-11-07T16:01:48.823 回答
0

尝试使用 DateDiff 函数:

SELECT DATEDIFF(year,GETDATE(),Vol_Age) 
于 2013-11-07T13:01:42.580 回答
0

你可以使用这个:

UPDATE Personal_Info SET vol_Age = (SELECT (DATEDIFF(YEAR, Vol_Date_Of_Birth,GETDATE()) + CONVERT(REAL,(DATEDIFF(month, Vol_Date_Of_Birth,GETDATE()) % 12))/12) AS AGE
FROM    Personal_Info)
于 2013-11-07T13:08:49.007 回答
0

我从不同的地方得到了答案,并合并了答案来得到这个:

 UPDATE Personal_Info SET vol_Age = (select convert(int,DATEDIFF(d, Vol_Date_of_Birth, getdate())/365.25));
于 2013-11-07T16:29:25.647 回答