まあ、それは絶対にひどいですが、これはうまくいくはずです:
WITH
ORIG (TS) AS (
SELECT BIGINT(REPLACE('26,366,861,945', ',', ''))
FROM SYSIBM.SYSDUMMY1
),
CONV (TS) AS (
SELECT TIMESTAMP_ISO('0001-01-01') + (SELECT TS FROM ORIG) MICROSECOND
FROM SYSIBM.SYSDUMMY1
),
FMT (TS) AS (
SELECT VARCHAR_FORMAT(TS, 'DD-HH24:MI:SS.FF')
FROM CONV
),
DAYLOC (D) AS (
SELECT LOCATE('-', TS)-1
FROM FMT
),
HOURLOC (H) AS (
SELECT LOCATE(':', TS, (SELECT D FROM DAYLOC))-1
FROM FMT
),
DY (D) AS (
SELECT CAST(SUBSTR(TS, 1, LOCATE('-', TS)-1) AS INTEGER)-1
FROM FMT
),
HOURS (H) AS (
SELECT CAST(SUBSTR(TS, (SELECT D FROM DAYLOC)+2, 2) AS INTEGER)
FROM FMT
)
SELECT
RTRIM(CHAR(((SELECT D FROM DY) * 24) + (SELECT H FROM HOURS))) ||
SUBSTR(TS, (SELECT H FROM HOURLOC) +1)
FROM FMT
パーツに分割したので、かなり簡単に理解できるはずです。文字列を整数に変換し、それを特定の日付に追加します (月の最初である限り、日付は実際には関係ありません)。次に、文字列検索/書式設定を使用して、日ではなく時間に変換します。