我有一个简单的 MYSQL 表,其中使用数据类型日期存储生日。行:
birthday
--------
1989-08-08
我想选择年龄在 18 到 25 岁之间的用户。我使用以下查询:
SELECT * FROM users
WHERE birthday <= now() - INTERVAL 18 YEAR and
birthday >= now() - INTERVAL 25 YEAR
这应该返回上面的行,因为它在 18 到 25 之间的范围内,但 MYSQL 假设它已经有 26 岁了,因为它在 25 到 26 之间
最佳答案
25年前是1989-09-27,1989-08-08小于1989-09-27,所以不会被退回。如果您想要当前 25 岁但尚未满 26 岁的用户,请更改为 INTERVAL 26 年 + INTERVAL 1 DAY
;
关于MYSQL根据年龄范围选择生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26078240/