根据DOB计算年龄并在MySQL中返回年龄20到30之间的行

时间:2018-09-10 08:22:37

标签: mysql date mysqli

我正在尝试根据存储在用户表中的DOB计算年龄,并根据年龄获取结果行。

例如,我希望年龄在20到30岁之间的用户。

我已经尝试过使用子查询,但是没有运气。

请提出建议。

SELECT
id
FROM
personal_info
WHERE
(
SELECT
    ROUND(
        (
            DATEDIFF(
                CURRENT_DATE,
                STR_TO_DATE(dob, '%Y-%m-%d')
            ) / 365
        )
    ) AS age
FROM
    personal_info
) BETWEEN 20 AND 30

1 个答案:

答案 0 :(得分:1)

请尝试以下查询:

SELECT
id
FROM
personal_info
WHERe 
    ROUND
        (
            DATEDIFF(
                CURRENT_DATE,
                STR_TO_DATE(dob, '%Y-m%-%d')
            ) / 365
        ) BETWEEN 20 AND 30