将JD Edwards数字列格式为HH24:MI:SS

时间:2019-05-13 12:10:13

标签: sql oracle plsql jdedwards

我有一个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;

1 个答案:

答案 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;