ho risolto in questo modo
Codice PHP:
$numRisultati 0;
    
$number 0;
    while(
$numRisultati == 0)
{
    
$result mysql_query("SELECT * FROM banner  WHERE data_inizio <= NOW() + INTERVAL  - '$number' DAY and data_fine >= NOW() + INTERVAL  - '$number' DAY  ORDER BY RAND() LIMIT 0,1");
   
$numRisultati mysql_num_rows($result);
  
$number++;
}
$dati mysql_fetch_array($result); 
Suggerito da skidx.
Troppo complicato secondo voi?