我有一个用于存储用户的表。 我想要一个查询来查找例如25岁到31岁之间的用户。 年龄作为日期存储在mysql表中(它存储生日)。 (例如:1980-02-25(yyyy-mm-dd))
如何编写查询以便每次找到两个给定年龄之间的人?
感谢。
答案 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)
注意:它是包容性的。