PHP: вычисление дня рождения от возраста - PullRequest
1 голос
/ 02 октября 2010

Да, это может звучать странно.

В форме расширенного поиска профиля, где вы можете фильтровать по возрасту.

Теперь вы должны ввести 18 или какой-нибудь другой возраст в поле.

Я храню дни рождения, в базе данных mysql, в поле дня рождения у пользователей, у меня есть пример: 1990-02-02

Как я могу фильтровать по возрасту в запросе?

Должен ли я сначала сделать запрос раньше, сделать дни рождения всех пользователей по возрасту, а затем сравнить их?Было бы слишком много, чтобы принять каждого пользователя.

Ответы [ 2 ]

2 голосов
/ 02 октября 2010

Бьюсь об заклад, это то, что вы ищете:

SELECT * FROM mytable 
WHERE TIMESTAMPDIFF(YEAR, mytable.birthday,'$currentTime') > '$ageFromForm';

Чтобы отсортировать данные, вы должны выполнить это:

SELECT *, (TIMESTAMPDIFF(YEAR, mytable.birthday, '$currentTime')) AS age 
FROM mytable WHERE TIMESTAMPDIFF(YEAR,'$birthday','$currentTime') > '$ageFromForm' 
ORDER BY age;

Надеюсь, это поможет;) Славянский

1 голос
/ 02 октября 2010

Не проверено, но должно работать как основа для начала:

SELECT <columns> FROM users WHERE birthday < SUBDATE(NOW(), INTERVAL 18 YEAR)
...