Twoje zapytanie jest ustawione tak, aby uzyskać posty z ostatnich 20 minut, jeśli chcesz dzisiaj oprócz ostatnich 20 minut, użyj data < DATE_SUB( NOW( ) , INTERVAL 20
MINUTE )
i nie większe niż.
Drugą część (od dzisiaj) można wykonać za pomocą curdate() funkcja:
CURDATE() = DATE(data)
i razem:
SELECT id, titulo
FROM posts WHERE
data < DATE_SUB( NOW( ) , INTERVAL 20 MINUTE )
AND
CURDATE() = DATE(data)
ORDER BY RAND( )