For numeric items you can check for blank by comparing to notappl. If you are in system controlled mode you need to use visualvalue since you are in preproc so the field has not been completed yet.
PROC DATE preproc ifvisualvalue($) = notapplthen
$=edit("99/99/99",sysdate("DDMMYY")); endif;
The sysdate function returns the current date. If you have different dates that you want to use as a single number, then you can construct them yourself using math. For example, if I wanted February 1, 2020 in YYYYMMDD format I could write: