我在数据库中有一个已经包含数据的表,但是现在我添加了一个名为的新列Vol_Age
并且它具有NULL
价值。我希望通过计算年龄来填充该列,数据来自Vol_Date_of_Birth
列,我需要一个计算年龄并将其插入Vol_Age
列的查询。我们可以使用Insert
or Update
,我们怎么做?!
请原谅我的英语。谢谢
我在数据库中有一个已经包含数据的表,但是现在我添加了一个名为的新列Vol_Age
并且它具有NULL
价值。我希望通过计算年龄来填充该列,数据来自Vol_Date_of_Birth
列,我需要一个计算年龄并将其插入Vol_Age
列的查询。我们可以使用Insert
or Update
,我们怎么做?!
请原谅我的英语。谢谢
请记住,由于您将该列添加到数据库中,该列中的任何值都将保留其值。随着时间的推移,您将需要不断更新数据库中的值。
另一种方法是删除该列并使其成为计算列。这样,年龄是在查询时计算的,而不是从上次更新时计算的。
ALTER TABLE tbname ADD Vol_Age AS DATEDIFF(YEAR, Vol_Date_Of_Birth, GETDATE())
尝试使用 DateDiff 函数:
SELECT DATEDIFF(year,GETDATE(),Vol_Age)
你可以使用这个:
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)
我从不同的地方得到了答案,并合并了答案来得到这个:
UPDATE Personal_Info SET vol_Age = (select convert(int,DATEDIFF(d, Vol_Date_of_Birth, getdate())/365.25));