SQL заявка

swlight

Registered
Здравейте. Искам да попитам дали едно нещо е възможно.

Значи имам поле birth и в него се записва примерно 15.10.1991(това е в ДБ)

Имам и в php написана функция, която като и се подаде дата(пример 15.10.1991) показва на колко години е юзъра.

Въпроса ми сега е как мога в самата заявка да сравня 12(като години) с полето, което съдържа годините така 15.10.1991. Има ли начин някакси информацията от полето да я обработя в самата заявка и ако не, какво бихте ме посъветвали?

Благодаря!
 
Можеш да използваш функцията DATEDIFF(); като параметрите които подаваш ще са start_date и end_date
За start_date ще ползваш информацията от базата, а за end_date може да ползваш NOW()

Нещо такова

[sql]
SELECT DATEDIFF(birth,NOW())
[/sql]

и вече си добави допълнителните критерии. :idea: :?: :idea:
 
Това не ми върши работа. Искам примерно да търся потребители, които са на 18 годишна възраст, като в базата данни полето е примерно 01.09.1992 и искам това да става в самата заявка. :?
 
swlight каза:
Това не ми върши работа. Искам примерно да търся потребители, които са на 18 годишна възраст, като в базата данни полето е примерно 01.09.1992 и искам това да става в самата заявка. :?
Човекът ти е дал решението, как не ти върши работа? Нали искаш да видиш колко време е минало?
Че и пример ти е даден... остава единствено да си го copy-paste-неш в твоята заявка.
Ако толкова не се справяш, достатъчно е за 10 сек. да провериш в гугъл как се ползва DATEDIFF. Дори не се налага да цъкаш линка.
Може дори само да погледнеш какво пише под заглавието.
The MySQL DATEDIFF function returns the difference in days
Ама не. "не се получава".
365*18 ти дава броя на дните в 18 години (really?). Не е трудно да се сетиш.
Значи
DATEDIF(now(), `datefield`)
дава броя на дните. Еми като го сложиш в проверката:

[sql]where DATEDIFF(now(), `datefield`) > 365*18[/sql]
Получаваш резултата.
Точката ще си е за @мапката.
 
И твоя не ми свърши работа. Реших си проблема по този начин

timestampdiff(year,str_to_date(birth,"%d.%m.%Y"),curdate()) = '.$ages.'
 
swlight каза:
И твоя не ми свърши работа. Реших си проблема по този начин

timestampdiff(year,str_to_date(birth,"%d.%m.%Y"),curdate()) = '.$ages.'
Не е станало защото не си обяснил на хората правилно!
 

Back
Горе