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



我需要在不执行任何操作的情况下更新年龄列。

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

这是针对 SQL Server 2008

请帮助我

如果您的表格中已经出生日期,那么Age实际上只是一个计算。您可以将其存储为每次出生日期更改时自动更新的计算列 - 或者您可以根据需要在SELECT中计算它。

问题是:你需要什么样的年龄"精确"?SQL Server中的DATEDIFF函数有点"粗糙" -DATEDIFF(YEAR, ....)计算例如只查看两个日期的年份- 所以

DATEDIFF(YEAR, '20171231', '20180101')

将返回1- 即使这两个日期 - 2017 年 12 月 31 日和 2018 年 1 月 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())
)

然后查看哪个"年龄"(以天、月或年为单位(足以满足您的需求。

最新更新