2017-08-27 85 views
-2

這裏的年齡SQL查詢表需要超過25

病人

PatientNo {PK} 
fName 
lName 
Address 
phoneNo 
DOB 

這裏的問題

獲取的25歲以上,其位置是在病人的姓名'Letterkenny'

以下是我的解決方案

SELECT Fname, Lname, address, DOB 
FROM Patient 
WHERE DOB BETWEEN #01/01/1900# AND #31/12/1991# 
    AND address = 'Letterkenny'; 

我的解決方案是否正確?

還有另一種方式來做年齡是否有可能做到這一點,而不是年齡。

WHERE DOB > 25 
+0

您需要將日期轉換爲年齡,通常您需要從今天的日期減去DOB以獲取天數/月/年,這將是您可以比較的年齡 –

回答

1

你應該從當前日期減去出生日期計算年齡:

SELECT Fname, Lname, address, DOB 
FROM Patient  
WHERE DATEDIFF(NOW(), DOB)/365 > 25 
AND address=’Letterkenny’; 

而NOW()返回MySQL的當前日期。

+0

,因此我只需更改代碼的哪個位置答案是?那麼這會返回25歲以上的患者嗎? –

+0

這取決於您正在使用的數據庫引擎。你在使用SQL Server,Oracle還是mySql? – Lamar

+0

@MarkDoherty當然加上'AND address ='Letterkenny'' –