2017-08-27 73 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'' –