Выборка по возрасту
Выборка по возрасту
С самого начала затупил ,в базу записывал дату рождения как (""."".1985 )--пример!Надо было сразу расчитывать и записывать уже готовый например --23 --года.
А теперь сталкнулся с такой проблемой,что мне надо людей отфильтровать по возрасту!
А вот теперь то и не пойму как это сделать.Может кто натолкнет на путь истинный?
А теперь сталкнулся с такой проблемой,что мне надо людей отфильтровать по возрасту!
А вот теперь то и не пойму как это сделать.Может кто натолкнет на путь истинный?
Re: Выборка по возрасту
боже упаси, или люди перестали стареть?gaponj88 писал(а):Надо было сразу расчитывать и записывать уже готовый например --23 --года.
это что, строкой тип данных или date?gaponj88 писал(а):(""."".1985 )--пример
Re: Выборка по возрасту
Это строкой Тип данных,записывается из bdate
Re: Выборка по возрасту
а какая необходимость была использовать не специализированный тип date? с ним можно делать различные операции сравнения, и выборки диапазонов
в строковом случае не представляю решения
в строковом случае не представляю решения
Re: Выборка по возрасту
С самого начала затупил ,в базу записывал дату рождения как (""."".1985 )
Re: Выборка по возрасту
Можно конечно вырезать из строки год
Но лучше переделай поля в тип даты.
Код: Выделить всё
SELECT *, SUBSTRING(bdate FROM 7 FOR 4) AS year FROM `users` ORDER BY year
Re: Выборка по возрасту
Спасибо Александр,в голове только и было что использовать substr()
Re: Выборка по возрасту
А как по новому теперь записывать в базу?
При регистрации в базе пользователя,у него постом из флешки идет bdate(28.11.1988),а формат DATE 0000-00-00
Как преобразовывать?Подскажите?
При регистрации в базе пользователя,у него постом из флешки идет bdate(28.11.1988),а формат DATE 0000-00-00
Как преобразовывать?Подскажите?
Re: Выборка по возрасту
Все разобрался,из-за того что раз тупанул,потратил весь день на расхлебку!
Проблему решил таким образом:
Создал еще один столбец назвал "bdate_2" и применил ВОТ ТАКОЙ КЛАССНЫЙ СКРИПТ:
он мне из первого столбца bdate формата строка 28.11.1988 переделал в столбец bdate_2 формата DATE 1988-11-28
Я рад и счастлив!
Одним словом классный скрипт!
Проблему решил таким образом:
Создал еще один столбец назвал "bdate_2" и применил ВОТ ТАКОЙ КЛАССНЫЙ СКРИПТ:
Код: Выделить всё
UPDATE `stat`SET `bdate_2` = CONCAT(SUBSTRING_INDEX( `bdate` , '.', -1 ) , '-',SUBSTRING_INDEX( SUBSTRING_INDEX( `date_str` , '.', 2 ) , '.' , -1 ) , '-',SUBSTRING_INDEX( `bdate` , '.', 1 ) ) ;
Я рад и счастлив!
Одним словом классный скрипт!