sql中来自dob的年龄

sql中来自dob的年龄,sql,Sql,在sql查询中,我在where子句中遇到了问题 我有一个dob和ssn的人在一张桌子上。我需要找到最年轻的孩子。顾客最年轻的高级客户年龄从55岁开始。DOB数据包含儿童、家长、高级客户的所有DOB。在“where”一行中,我必须写一个条件,检查年龄是否大于55岁,高级客户中的年龄是否必须更小。请给我一些建议。我以前曾发布过类似的问题,但没有得到任何能帮助我解决问题的回复 我的表中没有年龄参数 SSn DOB 22 1950-2-2 21 1987-3-3 54 1954-4-7

在sql查询中,我在where子句中遇到了问题

我有一个dob和ssn的人在一张桌子上。我需要找到最年轻的孩子。顾客最年轻的高级客户年龄从55岁开始。DOB数据包含儿童、家长、高级客户的所有DOB。在“where”一行中,我必须写一个条件,检查年龄是否大于55岁,高级客户中的年龄是否必须更小。请给我一些建议。我以前曾发布过类似的问题,但没有得到任何能帮助我解决问题的回复

我的表中没有年龄参数

SSn    DOB
22   1950-2-2
21   1987-3-3
54   1954-4-7

我需要找到与年龄相对应的ssn,在上述值中,ssn必须大于55且小于55。

如果您有DOB,则可以根据当前日期轻松计算年龄:

WHERE DATE_ADD(DOB, INTERVAL 55 YEAR) < NOW()
WHERE DATE_ADD(DOB,间隔55年)

这将使DOB增加55年,如果大于当前时间,则为真。这表明他们至少55岁。

在下面的脚本中,子选择查找55岁或以上最年轻人的DOB;然后,使用它查找相应的SSN记录。[这使用SQL Server语法。]

SELECT yt.* 
FROM *yourtable* yt
INNER JOIN 
(
    SELECT MAX(DOB) AS DOB
    FROM *yourtable*
    WHERE DATEADD(year, 55, DOB) < getdate() 
) maxdob
ON maxdob.DOB = yt.DOB
选择yt.*
从*yourtable*yt
内连接
(
选择最大(DOB)作为DOB
从你的桌子*
其中DATEADD(year,55,DOB)
n、 b.如果有超过1人具有相同的DOB,您可能会发现多个记录。 如果要强制执行此单一限制,请在SELECT语句中添加TOP 1子句。
hth

不,我必须找一个55岁以上但比其他高级客户年轻的单身人士