infatti il tuo problema non era quello, quella cosa però risaltava troppo all'occhio

1) ma perchè la condizione non la metti nell'UPDATE direttamente??
2) attivo è una stringa????

Codice PHP:
$result2 pg_query($db,"UPDATE annuncio SET attivo = 'TRUE' WHERE datascad_an >$oggi AND attivo='FALSE'"