SQL:根据出生日期计算某个人在某个特定日期的年龄

时间:2018-05-07 19:35:11

标签: sql sql-server

我列出了2017年访问过某个地点的人员名单。目标是将名单缩小到只有访问时的特定年龄范围内的人。查询非常简单:

SELECT DISTINCT
    VisitID
    ,VisitDate
    ,PersonID
    ,Age
    ,DateOfBirth

FROM Visit v JOIN Demographics d ON v.PersonID = d.PersonID

WHERE VisitDate BETWEEN '01/01/2017' AND '12/31/2017'
AND Age BETWEEN 45 AND 75

问题在于撰写此查询的方式,它会吸引目前在该年龄范围内的患者,而且可能不一定是在2017年。

我希望能够做的是添加一行代码,通过比较VisitDateDateOfBirth字段来计算访问者的年龄。我之前编写的代码是根据DOB计算某人的年龄,当时我还没有年龄字段,但这是另一种情况。到目前为止,我发现的教程或示例代码都没有在正确的上下文中。我该怎么做呢?

1 个答案:

答案 0 :(得分:-1)

- 这应该可以满足您多年来的需求:

SELECT DATEDIFF(YEAR, DateofBirth, DateOfVisit) AS AgeWhenVisit