Autor Zpráva
piiiiiiiip
Profil
Dobrý den. Snažím se vypsat z databáze záznamy které nejsou starší než jeden rok.
Zkoušel jsem například toto:
 return $this->database->query("SELECT * FROM `articles` WHERE timestamp_show > NOW() AND owner = '$owner' AND timestamp_show >= NOW() - INTERVAL 1 YEAR OR forall = '1' AND timestamp_show > NOW() AND DATEDIFF('timestamp_show', NOW()) BETWEEN 0 AND 365 ORDER BY timestamp_show - NOW() ASC LIMIT 50");
Datediff ani interval nefunguje, datediff nezobrazí nic a interval zobrazí vše. Nevíte někdo jak to udělat? Na googlu jsem našel jen to co už jsem uzkoušel.



Vyřešeno, omlouvám se za zbytečný post.
juriad
Profil
Podmínce timestamp_show > NOW() vyhoví jen budoucí záznamy.
Podmínka timestamp_show >= NOW() - INTERVAL 1 YEAR tedy nemá smysl, protože ta předchozí je silnější.

Ve funkci DATEDIFF předej jako první argument jen timestamp_show a nikoli řetězec 'timestamp_show'.
Po opravě to bude vracet záznamy v budoucích 365 dnech, nikoli v minulých.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: