如何进行查询(限制在2个年龄段 - 存储为日期)

时间:2009-12-26 19:57:42

标签: mysql

我有一个用于存储用户的表。 我想要一个查询来查找例如25岁到31岁之间的用户。 年龄作为日期存储在mysql表中(它存储生日)。 (例如:1980-02-25(yyyy-mm-dd))

如何编写查询以便每次找到两个给定年龄之间的人?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以在后端代码或MySQL本身中计算必要的日期范围。如果你选择MySQL,这里的查询可能是这样的:

SELECT user.* FROM user
  WHERE birthdate >= DATE_SUB(NOW(), INTERVAL 31 YEAR) 
  AND birthdate <= DATE_SUB(NOW(), INTERVAL 25 YEAR)

答案 1 :(得分:0)

MySQL也有一些更短的BETWEEN子句。我建议使用CURDATE()而不是NOW(),因为它没有时间组件。

SELECT * FROM user
WHERE birthdate 
   BETWEEN 
   (CURDATE() - INTERVAL 31 YEAR) 
   AND 
   (CURDATE() - INTERVAL 25 YEAR)

注意:它是包容性的。