我列出了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年。
我希望能够做的是添加一行代码,通过比较VisitDate
和DateOfBirth
字段来计算访问者的年龄。我之前编写的代码是根据DOB计算某人的年龄,当时我还没有年龄字段,但这是另一种情况。到目前为止,我发现的教程或示例代码都没有在正确的上下文中。我该怎么做呢?
答案 0 :(得分:-1)
- 这应该可以满足您多年来的需求:
SELECT DATEDIFF(YEAR, DateofBirth, DateOfVisit) AS AgeWhenVisit