jony7788
@jony7788
Коротко обо мне

SQL запрос на поиск пользователей с фильтром на возраст и пол?

В таблице "Users" есть поле "birthday" в формате date (1988-12-31) и поле "Gender" c значениями 'Male' 'Female'
Хочу поставит фильтр на поиске сайта по полу и возрасту, например (Женщины до x возраста или же Мужчины до x возраста) где X определяется от сегодняшнего числа (сегодня)-('birthday')=лет и пол берется из поле "Gender"
Помогите новичку как правильно это организовать ?
  • Вопрос задан
  • 2022 просмотра
Пригласить эксперта
Ответы на вопрос 3
@FungusWarrior
Я знаю, что ничего не знаю
ну что то вроде
SELECT * 
FROM Users
WHERE 
YEAR(date) - YEAR(birthday) - (DATE_FORMAT(date, '%m%d') < DATE_FORMAT(birthday, '%m%d'))<X
AND 
gender = "Male/Female"
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
SQL придумали как почти естественный язык "попросить у базы":

select [выбрать]
* [все]
from Users [из Users]
where [когда/где/которые]
gender = Female and (today - birthday) < X [ женщины и возраст меньше х]
or (или)
gender = Male and (today - birthday) < X [мужчины и возраст меньше х]
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
возрасту…(сегодня)-('birthday')=лет
Это не лет. Возраст вычисляется так:
CAST( DATEDIFF( Year, BirthDay, ISNULL( DeathDay, GETDATE())) + ( SIGN ( DATEDIFF ( DAY, BirthDay, DATEADD ( YEAR, YEAR( BirthDay ) - YEAR( ISNULL( DeathDay, GETDATE()) ), ISNULL( DeathDay, GETDATE())))) - 1 ) / 2 AS VARCHAR)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы