Вычислить возраст на основе dob и вернуть строки от 20 до 30 лет.

Я пытаюсь рассчитать возраст на основе 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

В вашем методе STR_TO_DATE (dob, '% Y -% -% d') отсутствует параметр месяца. Это просто опечатка?

karen 10.09.2018 10:24

Извините да, это была опечатка

Nev 10.09.2018 10:26
0
2
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте запрос ниже:

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

Другие вопросы по теме