Sql server 2008 当出生日期到达SQL Server时自动更新年龄

Sql server 2008 当出生日期到达SQL Server时自动更新年龄,sql-server-2008,Sql Server 2008,我需要在不做任何事情的情况下更新年龄栏 无论何时出生日期发生变化,它都应该自动更新年龄列-有什么解决方案吗 这是针对SQL Server 2008的 请帮帮我如果您的表格中已经有了出生日期,那么年龄实际上就变成了一个计算。您可以将其存储为计算列,该列在每次出生日期更改时自动更新,也可以根据需要在选择中进行计算 问题是:你需要什么“精确”的年龄?SQL Server中的DATEDIFF函数有点“粗糙”——DATEDIFF(YEAR,…)计算,例如,只查看两个日期的年份,因此 DATEDIFF(YE

我需要在不做任何事情的情况下更新年龄栏

无论何时出生日期发生变化,它都应该自动更新年龄列-有什么解决方案吗

这是针对SQL Server 2008的

请帮帮我

如果您的表格中已经有了出生日期,那么
年龄实际上就变成了一个计算。您可以将其存储为计算列,该列在每次出生日期更改时自动更新,也可以根据需要在
选择
中进行计算

问题是:你需要什么“精确”的年龄?SQL Server中的
DATEDIFF
函数有点“粗糙”——
DATEDIFF(YEAR,…)
计算,例如,只查看两个日期的年份,因此

DATEDIFF(YEAR, '20171231', '20180101')
将返回1——尽管这两个日期——2017年12月31日和2018年1月1日——仅相隔一天

您可以尝试以下方法:

CREATE TABLE dbo.Employees
(
    EmployeeID INT NOT NULL IDENTITY(1000, 11)
        PRIMARY KEY CLUSTERED,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    DateOfBirth DATE,
    AgeInYears AS DATEDIFF(YEAR, DateOfBirth, SYSDATETIME()),
    AgeInMonths AS DATEDIFF(MONTH, DateOfBirth, SYSDATETIME()),
    AgeInDays AS DATEDIFF(DAY, DateOfBirth, SYSDATETIME())
)
然后看看哪个“年龄”(以天、月或年为单位)对您的需要足够准确。

如果您的表格中已经有了出生日期,那么
年龄实际上只是一个计算。您可以将其存储为计算列,该列在每次出生日期更改时自动更新,也可以根据需要在
选择
中进行计算

问题是:你需要什么“精确”的年龄?SQL Server中的
DATEDIFF
函数有点“粗糙”——
DATEDIFF(YEAR,…)
计算,例如,只查看两个日期的年份,因此

DATEDIFF(YEAR, '20171231', '20180101')
将返回1——尽管这两个日期——2017年12月31日和2018年1月1日——仅相隔一天

您可以尝试以下方法:

CREATE TABLE dbo.Employees
(
    EmployeeID INT NOT NULL IDENTITY(1000, 11)
        PRIMARY KEY CLUSTERED,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    DateOfBirth DATE,
    AgeInYears AS DATEDIFF(YEAR, DateOfBirth, SYSDATETIME()),
    AgeInMonths AS DATEDIFF(MONTH, DateOfBirth, SYSDATETIME()),
    AgeInDays AS DATEDIFF(DAY, DateOfBirth, SYSDATETIME())
)

然后看哪个“年龄”(以天、月或年为单位)足够精确满足您的需要。

如果您有出生日期,那么年龄实际上只是一个计算值,因此您可以将其存储为一个计算列,在每次出生日期更改时自动更新。如果您有出生日期,那么年龄实际上只是一个计算值,因此您可以可以将其存储为计算列,该列在每次出生日期更改时自动更新。Marc我在存储过程中编写了插入查询,其中包含出生日期计算。我的问题是如何自动更新?如果我检索到一条记录,请简要说明它将如何自动更新列记录???@Mohamedjamalbatcha:这没关系-在您实际插入(或更新)数据时-但一天后,它不再是最新的和正确的。让我清楚地解释一下,我的数据库中有员工数据,如果我插入员工数据,它将自动计算我在存储过程中写入的年龄,但是如果员工的出生日期可能是明天,如果我检索员工详细信息,它将自动显示更新后的年龄。Marc我在存储过程中编写了插入查询,其中包含出生日期计算。我的问题是如何自动更新?如果我检索到一条记录,请简要说明它将如何自动更新列记录???@Mohamedjamalbatcha:这没关系-在您实际插入(或更新)数据时-但一天后,它不再是最新的和正确的。让我清楚地解释一下,我的数据库中有员工数据,如果我插入员工数据,它将自动计算我在存储过程中写入的年龄,但是如果员工的出生日期可能是明天,如果我检索员工详细信息,它会自动显示更新的日期吗