Autor Zpráva
LukasCZ
Profil
Chtel bych poradit, jak zjistit aktualni vek z databaze, kde mam zadano datum, mesic a rok

$den=$radek["den"];
$mes=$radek["mesic"];
$rok=$radek["rok"];

// z techto udaju potrebuji vypsat aktualni vek uzivatele.

a poté jak tuto funkci pouzit v mySQL dotazu.
Např. aby to vypsalo uživatele ve věku 15-20 let.

Předem díky moc za radu, případně odkazy (v češtině)
Leo
Profil
Nevim, jestli je rozumne mit na kalendarni datum v tabulce tri sloupce kdyz bohate staci jeden, treba s datovym typem DATE. Leo
WertriK
Profil *
Napadla jen jedina pomerne jednoducha vec:

$den=$radek["den"];
$mes=$radek["mesic"];
$rok=$radek["rok"];

$cislo.= "$rok.$mes.$den"; // melo by z toho vylest neco jako 19920325
$datum = Date("Ymj"); // taky neco jako 20050714
// zalezi jak mas datum ulozene jestli s nulou nebo ne

$rozdil = $datum-$cislo;

a potom uz jen nejaka podminka

if ($rozdil > 150000) { // pokud je starsi 15 let
....
}

A ten SQL dotaz nevim jestli by tak sel ale ja byc zkusil neco jako

SELECT * FROM tabulka WHERE CONCAT(rok,mes,den)-$datum > 150000

ale jelikoz pres mysql moc nejsem(na to CONCAT jsem se tady ptal ;) ) tak bych rekl ze to tak spis nepujde jak pujde...
Leo
Profil
Zkuste si to jeste jednou po sove precist, mate pocit, ze to bude fungovat? :-) Kolik dnu rozdilu vam asi tak ujde pro data

20050701

a

20050630

:-))))

Leo
WertriK
Profil *
krapet chyba....vyhral jsi...;)
ash
Profil
1. zmeň typ poľa v tabuľke na DATE, podstatne ti to uľahčí situáciu

2.
výpis užívateľov vo veku 15-20 rokov:

SELECT meno FROM tabulka
WHERE DATE_ADD(dat_narodenia,INTERVAL 20 year)>=CURDATE()
AND DATE_ADD(dat_narodenia,INTERVAL 15 year)<=CURDATE()


tento spôsob počíta správne aj s priestupnými rokmi
Toto téma je uzamčeno. Odpověď nelze zaslat.

0