首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当出生日期到达Server时自动更新年龄

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

Stack Overflow用户
提问于 2017-08-08 08:58:43
回答 1查看 1.1K关注 0票数 0

我需要更新年龄列而不做任何事情。

无论何时出生日期改变,它都应该自动更新年龄列--有什么解决办法吗?

这是用于Server 2008的

请帮帮我

EN

回答 1

Stack Overflow用户

发布于 2017-08-08 09:11:00

如果您的表中已经有了出生日期,那么Age实际上只是一个计算。您可以将其存储为计算列,每次出生日期发生变化时都会自动更新,或者只需在SELECT中计算。

问题是:你需要多少“精确”的年龄?Server中的DATEDIFF函数有点“粗糙”--例如,DATEDIFF(YEAR, ....)计算只看两个日期的--所以

代码语言:javascript
复制
DATEDIFF(YEAR, '20171231', '20180101')

将返回 1 --尽管这两个日期--2017年12月31日和2018年1月1日--只相隔一天。

你可以试试这样的东西:

代码语言:javascript
复制
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())
)

然后看看哪个“年龄”(以天、月或年为单位)对于你的需求来说是足够准确的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45563872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档