Autor | Zpráva | ||
---|---|---|---|
Vilak Profil |
Zdarec. Mám databázi, ze které chci vybrat data. Každý řádek obsahuje datetime, což je takto zapsaný datum: "rrrr-mm-dd hh:mm:ss". A nevím, jak mám sepsat nějakou podmínku (jestli vůbec v php nebo mysql o.O), kde bych měl, že to vybere pouze takové řádky, které nejsou starší než měsíc (30 dní).
Př.: Teď, když to píšu, je 2015-07-20 00:59:40. Takže kdyby tam byl řádek, který by měl datetime 2015-06-20 00:55:00, tak by se neměl zobrazit. Můj dotaz zatím vypadá takto: $dotaz = mysql_query("SELECT * FROM `events` ORDER BY `id` DESC LIMIT 2"); echo "<table>"; while ($vypis = mysql_fetch_assoc($dotaz)) { // výpis dat } $date = Date("Y-m-d H:i:s", Time()); $dotaz = mysql_query("SELECT * FROM `events` WHERE datetime BETWEEN '$date' AND '$DATUM_O_MĚSÍC_DŘÍV' ORDER BY `id` DESC LIMIT 2"); //edit |
||
Alphard Profil |
#2 · Zasláno: 20. 7. 2015, 01:22:57
Aritmetika pro datové typy (date, time, datetime) funguje očekávaným způsobem, tj. můžete přičítat intervaly a vzájemně je porovnávat. K odečtení určitého intervalu si nastudujte sub_date. Pak stačí
where sloupec >= date_sub(now(), ...) .
|
||
Vilak Profil |
#3 · Zasláno: 22. 7. 2015, 01:25:48
Díky, mám to. Pro ostatní řešení zde:
SELECT * FROM `events` WHERE `datetime` >= date_sub(now(), INTERVAL 30 DAY) ORDER BY `id` DESC LIMIT 2 |
||
Časová prodleva: 10 let
|
0