我有一个简单的MYSQL表,我在其中存储了数据类型为date的生日。行:
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之间
答案 0 :(得分:1)
INTERVAL 26 year + INTERVAL 1 DAY
;
答案 1 :(得分:1)
使用这个逻辑:如果18岁的人那么真实:
(birthday + INTERVAL 18 YEAR) <= now() < (birthday + INTERVAL 19 YEAR)
如果某人年满25岁,则为真:
(birthday + INTERVAL 25 YEAR) <= now() < (birthday + INTERVAL 26 YEAR)
通过这种逻辑来吸引年龄在18到25岁之间的用户:
SELECT * FROM users
WHERE birthday <= now() - INTERVAL 18 YEAR and
birthday > now() - INTERVAL 26 YEAR