Ahoj,
mam takovy problem... V databazy mam ulozene datum narozeni ruznych lidi, a potrebuju z databaze vybrat (SELECT) pouze lidi, kterym je 20 let....
Vubec nevim, jak na to..
Diky moc za kazdou radu
zalezi na tom, jak mas to datum ulozene. Myslim, ze ho staci porovnat s datem {dnes -20 let}, ne?
No datum tam mam ulozeny v polozce datum, ktera je typu DATE.
Jak by pak vypadal dotaz na databazi?
Kdyz ho porovnam, tak akorat vyberu lidi, kterym dnes bylo 20. Ja bych potreboval vsechny lidi, kterym je 20.
Prosim prosim.. Nevi to nekdo?
select * from tabulka where (YEAR(NOW())-YEAR(datum))=20
ale nekamenujte me jestli je to spatne... sql odbornik nejsem (zatim :) )
"lidi, kterym je 20 let...."
1. Myslíš, kteří mají dnes narozeniny (20 let)?
2. Nebo myslíš ti, kteří už mají 20 let a ještě nemají 21 let?
Řešení 1: je jednoduché, viz donny výše.
Řešení 2:
FROM `tabulka` WHERE (DATE_SUB( CURDATE( ) , INTERVAL 20 YEAR ) > datum) AND (DATE_SUB( CURDATE( ) , INTERVAL 21 YEAR ) < datum)
Zbi: Jasne myslim variantu cislo 2. S tou prvni si vi rady a lama. :-D
Jinak dik, moc jsi mi pomohl
Nechci rypat, ale ...
http://damian.brhel.info/index.php?kam=omne
trošku soudnosti ne? Ty tam napises co vsechno umis a pak se tady ptas na zaklady, neni Ti to trosku trapne?
Ale tenhle dotaz na SQL nebyl zrovna zacatecnickej..
No hadal bych se ...
Je to zakladni funkce MySQL a trocha premysleni. Pokud ti tohle neprislo zacatecnicke muzu ti ukazat nejake "nezacatecnicke selecty" a myslim ze si tu znalost SQL ihned z webu odpares.
Ne jako nic ve zlym, ale chce to trosku sebekritiky, pokud si das na web ze neco umis, tak predpokladam ze i kdyz te ve 3 rano vzbudim tak mi to reknes spravne a bez vahani i odzadu.