Как найти пользователей с возрастом более 20 лет и до 25 лет базы данных php - PullRequest
0 голосов
/ 03 июля 2018

У меня проблема с получением базы данных, возраст которой больше и меньше значения, которое я выбрал

В настоящее время база данных для формата возраста образца "1996-07-30"

И я хочу получить пользовательские данные с возрастом фильтра более 20 и менее 25 лет

Я пробовал некоторые запросы, и они не работают, и вот пример кода, который я создал:

SELECT *
     , TIMESTAMPDIFF(YEAR, tglLahir, CURDATE()) AS age 
  FROM tb_member 
 WHERE TIMESTAMPDIFF(YEAR, tglLahir, CURDATE()) >= 20 
   AND (TIMESTAMPDIFF(YEAR, tglLahir, CURDATE()) <= 25 
 ORDER 
    BY nama
 LIMIT 0,10

и я также попробовал другой пример, подобный этому:

SELECT *
     , TIMESTAMPDIFF(YEAR, tglLahir, CURDATE()) AS age 
   FROM `tb_member`  
  WHERE tglLahir BETWEEN DATE_SUB(NOW(), INTERVAL 20 YEAR) 
    AND DATE_SUB(date, INTERVAL 30 YEAR)
  ORDER 
     BY nama
  LIMIT 0,10

но результатов пока нет, есть ли другое решение для этой проблемы?

UPDATE

Я решаю свою проблему, я все еще использую этот код:

TIMESTAMPDIFF(YEAR, tglLahir, CURDATE()) >= '20' AND 
TIMESTAMPDIFF(YEAR, tglLahir, CURDATE()) <= '25'

И отлично работает, спасибо, что кто-нибудь ответит на мой вопрос, спасибо.

1 Ответ

0 голосов
/ 03 июля 2018

Мне действительно нравится использовать DATE_SUB() для расчетов для этой цели (используйте DATE_SUB для вычитания из NOW (), чтобы получить 20 лет назад, а затем 25 лет назад). В сочетании с МЕЖДУ вы должны уметь:

SELECT *, TIMESTAMPDIFF(YEAR, tglLahir, CURDATE()) AS age 
FROM `tb_member` WHERE 
tglLahir BETWEEN 
DATE_SUB( NOW(), INTERVAL 20 YEAR) AND
DATE_SUB( NOW(), INTERVAL 25 YEAR)
ORDER BY `nama` LIMIT 0,10

Ваш второй пример запроса в вашем вопросе близок, но вы используете date в своем втором DATE_SUB(), который, я думаю, может быть виновником вашей проблемы с этим подходом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...