Я пытаюсь рассчитать возраст на основе 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
Извините да, это была опечатка
Попробуйте запрос ниже:
SELECT
id
FROM
personal_info
WHERe
ROUND
(
DATEDIFF(
CURRENT_DATE,
STR_TO_DATE(dob, '%Y-m%-%d')
) / 365
) BETWEEN 20 AND 30
В вашем методе STR_TO_DATE (dob, '% Y -% -% d') отсутствует параметр месяца. Это просто опечатка?