在此之前,我已被告知 SO的正确方法是:
WHERE birth_date BETWEEN date_sub(curdate(), INTERVAL 25 YEAR)
AND date_sub(curdate(), INTERVAL 30 YEAR)
但是,这实际上并不包括 30 岁以上和 31 岁以下的用户。当我们通常所说的人的年龄时,我们将 30 岁 11 个月的人仍然是“30”。
考虑到这一点,简单地设置第二个间隔31
(比您预期的多一年)似乎是一个明显的解决方案,但这包括今天年满 31 岁的用户,所以这不好。
那么,在 MySQL中将生日存储为 type 时,找到年龄大于或等于25 岁且小于31 岁的用户的明确且最快的方法是什么?date