Danke für den Hinweis, ich werde das beherzigen.
Trotzdem stehe ich auf dem Schlauch, wenn die Kunden nicht mitspielen.
Ein kleines Beispiel:

Einfache Datumskonvertierung (klappte schon auf V6R1) von Dezimal JJJJMMTT, beide Systeme V7R1, allerdings unterschiedliche PTF-Stände/TR's (nicht geprüft)?

date(char(nullif(MyDateNum, 0) * 1000000))

Auf einem System klappt das ohne Probleme, auf dem 2. System kommt ein Überlauffehler.
Im Debugmodus sieht man dann auch einen "Cast"-Fehler dieser Art (abgekürzt):

cast(MyDateNum * 1000000 as integer)

Nun weiß ich nicht, wie der Optimizer auf die Idee kommt, dass eine 8-Stellige * 6-Stellige Zahl in ein Integer passt.
Nach Änderung in
date(digits(nullif(MyDateNum, 0)) concat '000000')
klappt es auf beiden Systemen.

Das Hauptproblem des Ganzen ist einfach, dass man immer wieder überlegen muss, welcher SQL auf welchem Release und dann auch noch mit welchem TR funktioniert.