MySQL按年龄范围查询具有出生日期的表

sug*_*nan 3 mysql sql select where-clause

我有一个带有出生日期的 MySQL 表。我想查询基于当前日期的年龄的行。因此,以下是对具有日期范围的表的查询。

SELECT * FROM `user` WHERE `dob` > '1980-01-20' AND `dob` < '1990-01-20';
Run Code Online (Sandbox Code Playgroud)

我们如何将此查询转换为在同一个表中搜索当前日期的年龄范围?

Mur*_*nik 5

您可以使用该year函数来提取当前日期的年份部分。因此,例如,如果您要寻找年龄在 24 到 34 岁之间的用户:

SELECT * 
FROM   `user` 
WHERE  (YEAR(NOW()) - YEAR(`dob`)) BETWEEN 24 AND 34
Run Code Online (Sandbox Code Playgroud)