Also man kann das auch anders machen

D DAT1 S D DATFMT(*ISO)
D DAT2 S D DATFMT(*EUR)

MOVEL SKBDAT DAT1
MOVEL DAT1 DAT2
MOVE DAT2 ZZDATE

Wichitg ist dafür nur das in SKBDAT gültige Werte enthält also 0 oder 20120231 wird nicht funktionieren?

Desweiteren würde ich dir empfehlen, das ZZDATE nicht num. zu definieren sondern 10A und dann DAT2 über die Funktion %CHAR.

Ganz billige Alternative über Datenstrukturen. Geht immer