簡體   English   中英

在SQL中從DOB年齡

[英]age from dob in sql

在sql查詢中,where子句出現問題。

我在桌子上坐着一個人。 我需要找到最小的snr。 顧客。 最年輕的高級客戶的年齡從55歲開始。DOB的數據包含所有兒童,父母,高級客戶的DOB。 在“ where”行中,我必須編寫一個條件來檢查年齡是否大於55歲並且在高級客戶中必須更小。請向我提出一些建議。我之前曾發布過類似的問題,但沒有得到任何答復可以幫助我解決它。

我的表中沒有年齡參數。

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

我需要找到與年齡相對應的ssn,該年齡必須大於55且在上述值中較小。

如果您擁有DOB,則可以根據當前日期輕松計算年齡:

WHERE DATE_ADD(DOB, INTERVAL 55 YEAR) < NOW()

這將使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

注意,如果有多個具有相同DOB的人員,則可能會找到多個記錄。 如果要強制執行此單個限制,請在SELECT語句中添加TOP 1子句。 心連心

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM