Originariamente inviato da fmh76
Grazie per il consiglio ma in questo caso la data viene registrata come 0000-00-00 e non come campo vuoto (come credevo).
Il campo in sql è impostato per poter essere vuoto e di default è NULL.
0000-00-00 e' il valore di un campo DATE vuoto. Non esiste una data "vuota" ... come potresti comparare una data con un campo vuoto? O un numero con un campo vuoto?

Se lo vuoi vuoto metti il campo come NULL, ma al primo aggiornamento con un campo vuoto ti riappare il campo non piu' null ma empty con valore 0000-00-00. Con NULL il campo NON esiste e non viene proprio considerato salvo espressa richiesta.

in fase di stampa puoi sempre fare un controllo:

if($campo == '0000-00-00') { echo campo = ''; }