私は以前にSOについて知らされていましたが、これを行う正しい方法は次のとおりです。
WHERE birth_date BETWEEN date_sub(curdate(), INTERVAL 25 YEAR)
AND date_sub(curdate(), INTERVAL 30 YEAR)
ただし、実際には30歳以上31歳未満のユーザーは含まれません。一般的に年齢について言えば、30歳11か月のユーザーを「30」と見なします。
そのことを念頭に置いて、2番目の間隔31
(意図したよりも1年多い)を単純に作成することは明らかな解決策のように思えますが、今日31歳になったユーザーも含まれるため、それは良くありません。
では、MySQLに生年月日がタイプとして保存されている場合に、年齢が25歳以上31歳未満のユーザーを見つけるための最も確実で最速の方法は何でしょうか。date