Votre requête est configurée pour obtenir les messages des 20 dernières minutes, si vous voulez aujourd'hui sauf les 20 dernières minutes, vous devez utiliser data < DATE_SUB( NOW( ) , INTERVAL 20
MINUTE )
et pas plus grand que.
La deuxième partie (à partir d'aujourd'hui) peut être faite avec curdate() fonction :
CURDATE() = DATE(data)
et ensemble :
SELECT id, titulo
FROM posts WHERE
data < DATE_SUB( NOW( ) , INTERVAL 20 MINUTE )
AND
CURDATE() = DATE(data)
ORDER BY RAND( )