我有一个JD Edwards表列,其下面的值170443代表时间。我想将其格式化为HH:MI:SS,但出现错误ORA-01850:小时必须在0到23之间。我需要对以下代码进行哪些更改才能使输出显示为17: 04:43?
SELECT CASE WHEN LVUPMT= 0 THEN NULL
ELSE
TO_TIMESTAMP(substr(LVUPMT,1,2) ||':'||substr(LVUPMT,3,2) ||':'||substr(LVUPMT,5,2), 'HH24:MI:SS')
END AS DDATE
FROM PRODDTA.F07620 WHERE LVAN8 = 102366;
答案 0 :(得分:0)
使用适合您数据格式的掩码将其投射到某个日期,然后将其投射到tsring上以获得所需的格式:
SELECT CASE WHEN LVUPMT= 0 THEN NULL
ELSE
to_char( to_date(LVUPMT, 'HH24MISS'), 'HH24:MI:SS')
END AS DDATE
FROM PRODDTA.F07620 WHERE LVAN8 = 102366;