Warum soll ich mich darüber streiten?
Ich kann nur sehen, was im Compiler-Listing passiert.
Hier werden QSQ-Routinen (also SQL) aufgerufen die mit RPG-Variablen umgehen.
Klar prüft die RPG-Runtime, dass in der Datumsvariablen die Zeichendarstellung des Datumformates korrekt ist. Zwischen SQL (also den QSQ-Calls) und RPG werden eben nur Zeichenvariablen vom Typ Datum ausgetauscht.
Enthält die DB beim Lesen eines Datums z.B. den1.1.0001 bekomme ich bei NULL-Anzeiger das Datum erst gar nicht übergeben. Dies liegt darin begründet, dass in der internen SQLDA eben das Datumformat für den Austausch ereits festgelegt ist.
SQL und nicht die DB ist für das hin- und herkonvertieren zwischen Programm und DB verantwortlich.
Wenn mir also der SQL-Precompiler nun mal RPG-variablen vom Typ DD.MM.YY erstellt, kann die RPG-Runtime nun mal nichts anderes zulassen.
Was die Datenbank (das sind dann QDB-Programme) damit macht ist mir letztlich egal.
Die interne "scaliger" spielt in diesem Umfeld keine Rolle.