一些选择使用日期格式的查询

时间:2012-06-04 09:35:32

标签: mysql

所以..要根据日期类型返回年龄,这很容易: 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是医务人员的数量。我尝试过连接和各种查询但它们都没有正常工作。也许会与案件合作?如果是的话怎么样?

1 个答案:

答案 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) ;