所以..要根据日期类型返回年龄,这很容易: SELECT YEAR(CURDATE()) - YEAR(DateofBirth),我们得到一个人的年龄的结果集
但是如果我需要根据他们的生日日期搜索年龄范围为60-70岁的人,这种格式为d / m / y(例如:2005-04-11)。我认为这有点难,因为如果你只有日期分娩,而不是搜索你已经将他们的年龄计算为正常年份(50,60等)的专栏,那么寻找某个年龄是不同的事情
与上述问题无关的另一个问题:
假设我有一张Medics的桌子,上面有他们的名字,姓氏和专长。 我们有17个专业:reumatologie,o.r.l,chirurgie等和108名医生
如何根据以下格式获取该范围内的医学专科和医生名单:
Ex:reumatologie - 4,o.r.l - 5,chirurgie - 10等
实例中的4和5是医务人员的数量。我尝试过连接和各种查询但它们都没有正常工作。也许会与案件合作?如果是的话怎么样?
答案 0 :(得分:1)
对于问题1,您可以做(虽然性能不是很好):
SELECT YEAR(CURDATE()) - YEAR(DateofBirth) AS age
FROM tableX
WHERE (YEAR(CURDATE()) - YEAR(DateofBirth)) BETWEEN 60 AND 70 ;
如果您想要性能,可以在DateofBirth
上添加索引并使用此版本:
SELECT YEAR(CURDATE()) - YEAR(DateofBirth) AS age
FROM tableX
WHERE DateofBirth >= MAKEDATE(YEAR(CURDATE())-70, 1)
AND DateofBirth < MAKEDATE(YEAR(CURDATE())-60+1, 1) ;