Das ist aber ein klssisches RPG und kein SQL-Problem. Für SQL ist das Datumsformat absolut egal, da es immer mit der internen Repräsentation (Scaliger Nr - 4 Byte Binär) arbeitet.

RPG dagegen konvertiert ein Datum immer in einen alphanumerischen String und konvertiert diesen erst unmittelbar vor dem Update etc. zurück.

Das eigentliche Problem tritt natürlich immer auf, wenn aus einer Datums-Variable mit 4-stelligem Datum Daten in ein Datums-Feld mit 2-stelligem Jahr übertragen werden, deren Werte außerhalb des gültigen Bereichs (vor 01.01.1940 / nach 31.12.2039) liegen.

Die zusätzlichen SQL-Host-Variablen werden mit dem Datums-Format aus dem Compile-Befehl bzw. SET OPTION angelegt. Default-Wert an dieser Stelle ist *JOB (und das Job-Datum ist i.e.R. auf ein Format mit 2-stelligem Jahr eingestellt).

Die RPG-(Host)Variablen beziehen Ihr Datums-Format aus dem Schlüssel-Wort DATFMT, das entweder in den D-Bestimmungen und/oder H-Bestimmungen hinterlegt ist, wobei die Angabe in den D-Bestimmungen den Vorrang hat. Sofern das Schlüssel-Wort DATFMT weder in den D- noch in den H-Bestimmungen wird für die RPG-Variablen das Format *ISO verwendet.

Birgitta