Ungültige Daten kann man da leider nicht in ein Datum umsetzen, dass kannst du nur mit einem Case-Ausdruck eingrenzen.

Zusätzlich passiert ja noch folgendes:
Im STRSQL, also Dialog, schafft SQL es diese Daten dann zu überlesen.
Im embedded SQL geht das nur, wenn du NULL-Anzeiger verwendest, ansonsten kommt ein Fetch nicht über den fehlerhaften Satz hinaus.

Solange du sicher sein kannst, dass in den Daten, wenn sie <> 0 sind, nur gültige Daten drinn stehen, kannst du einen Case-Ausdruck verwenden:

case
when JJJJ <> 0 and MM <> 0 and TT <> 0
then DateAusdruck
else NULL
end

Auch hier benötigst du natürlich bei embedded SQL einen NULL-Anzeiger.

PS:
ISO kam tatsächlich erst beim Edit, das das Datumformat bei mir in STRSQL immer auf *ISO steht.