如何设计一个 table 的年龄 returns 两年后在 SQL 服务器中查询该人的当前年龄?

How to design a table having age which returns current age of that person when queried after two years in SQL Server?

我想设计一个table如下,return是两年后查询的人当前年龄return

CREATE TABLE Person 
(
    Person_ID INT IDENTITY(1,1) NOT NULL,
    Initial VARCHAR(50) NULL,
    Surname VARCHAR(100) NOT NULL,
    Age INT NOT NULL
)

例如table有2行

 Person_ID  Initial Surname Age
 -------------------------------
    1        AR     Rahman  40
    2        M      Jackson 50

两年后 select 查询

select age 
from Person 
where person_ID = 1 

应该return42

您应该在 table 中存储出生日期并始终计算年龄。
为此,您可以使用计算列,或者您需要在查询本身中包含计算。

将 table 中的出生日期存储为 DATE 并使用 计算列 而不使用 persisted 关键字,因为年龄计算是非确定性,如下面的代码所示。

CREATE TABLE #Person
(
    Person_ID INT IDENTITY(1,1) NOT NULL,
    Initial VARCHAR(50) NULL,
    Surname VARCHAR(100) NOT NULL,
    DOB DATE NULL,
    Age AS DATEDIFF(YEAR,DOB,getdate())  
)

INSERT INTO #Person
SELECT 'Gyan','Prakash','26-feb-1994'

SELECT * FROM #Person