Chcem vypisovat vek uzivatela z databazy, pricom uzivatel ma zadany datum narodenia. Cize potrebujem odcitat od aktualneho datumu, datum narodenia. Existuje nejaka funkcia na odcitanie datumov s presnostou na den?
DIK
No, chvilku jsem experimentoval a na zdejší verzi MySQL to vypadá na dvě řešení. Buď postupně odečíst roky a dny (year() a date_format(datum, '%j')) nebo si datum předat do php a vyřešit to tam. Druhý způsob bude asi méně bolestný.
Pokud používáš MySQL 4.1.1 a vyšší, můžeš použít funkci DATEDIFF(), která přímo vrací počet dnů mezi dvěma datumy.
Na WZ je však verze 4.0.24, takže je třeba to obejít a využít třeba funkci TO_DAYS():
SELECT TO_DAYS(curdate()) - TO_DAYS(tvuj_datum_v_db) AS dny FROM tvoje_tabulka
Všechno viz:
http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
Jo, to_days() jsem nenasel, to je dobre...
No, moc bych se neradoval. Ten můj SQL příkaz sice řeší výpočet počtu dnů mezi dvěma datumy, ale byl bych opatrný z těch dnů počítat věk, jak tazatel zamýšlí. Důvodem jsou přestupné roky. Ovšem otázka byla zcela zodpovězena.
zbi, když máš dny, tak to podělíš 365.2525 a pokud někdo není starší jak 1000 let, tak se trefíš hodně přesně... :-)
Ano, zvýšíš přesnost, ale bude se to chovat nevyzpytatelně zrovna v období narozenin (plus mínus den), na což je každý citlivý. ;-) Já vím, je to detail, ale chtěl jsem na to upozornit.