Es gibt schon andere Methoden, aber ob die unbedingt schicker sind?!
Aktuell kann SQL nur gültige alphanumerische Darstellungen eines Datums oder Zeitmarke konvertieren. Sofern SQL ein numerisches Datum konvertieren soll muss dieses (zumindest unter 7.1) der rechnerischen Anzahl der Tage seit dem 01.01.0001 entsprechen.

Die folgende Lösung könnte vielleicht etwas einfacher sein (allerdings nur wenn die Spalten gepackt oder gezont 2, 0 definiert sind. Sollte es sich um echte Integer-Werte handeln, müssen die numerischen Werte gecastet werden:
Code:
Date(Digits(G1JHTB) concat Digits(G1JJTB) concat 
     Digits(G1MMTB) concat Digits(G1TTTB) concat '000000')
Code:
Date(Right(Digits(G1JHTB), 2) concat Right(Digits(G1JJTB), 2) concat 
     Right(Digits(G1MMTB), 2) concat Right(Digits(G1TTTB), 2) concat '000000')

Um das ganze zu vereinfachen, kannst Du auch eine UTF (user defined function) schreiben und diese ausführen. Der Vorteil bei UDFs Du kannst fehlerhafte Daten abfangen.
Etwa so:
Code:
Create Function YOURSCHEMA/CVTHJMD2DT 
      (ParJHD Decimal(2, 0) , 
       ParJJ  Decimal(2, 0) ,
       ParMM  Decimal(2, 0) , 
       ParTT  Decimal(2, 0) )
   Returns Date
   Language SQL

Begin 
   Declare Continue Handler for SQLSTATE '22007'
           Return Date('0001-01-01');
   Return Date(Digits(ParJHD) concat Digits(ParJJ) concat 
               Digits(ParMM)  concat Digits(ParTT) concat '000000');
End;
Aufruf der UDF:
Code:
Select CVTHJMD2DT(G1JHTB, G1JJTB, G1MMTB, G1TTTB)
From YourTable;
Birgitta