Ich weiß, es überhaupt nicht klug ist, noch ist es das spezielle Format-String für Sie suchen, aber diese Antwort funktioniert gegeben, dass die Ausgabe fester Länge ist:
SELECT SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 1, 1)
|| SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 9, 2)
|| ' '
|| SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 12, 12)
FROM table1;
Es ist auch überspringe nur die Sekundenbruchteile, anstatt zu runden, aber ich nehme an, dass sie aus deinem Beispiel sowieso nur Nullen sind.
Dies ist eine noch größere Verlegenheit, aber ich konnte nicht widerstehen:
SELECT SUBSTR(REPLACE(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00')))
, '0000000', '')
, 1, 16)
FROM table1;
Ihr zweiter Vorschlag funktioniert gut! auch mit HQL. Vielen dank für Deine Hilfe! –