Sql 将JD Edwards编号列格式化为HH24:MI:SS

Sql 将JD Edwards编号列格式化为HH24:MI:SS,sql,oracle,plsql,jdedwards,Sql,Oracle,Plsql,Jdedwards,我有一个JD Edwards表列,其值为170443,表示时间。我想将其格式化为HH:MI:SS,但我得到一个错误ORA-01850:hour必须介于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), 'HH

我有一个JD Edwards表列,其值为170443,表示时间。我想将其格式化为HH:MI:SS,但我得到一个错误ORA-01850:hour必须介于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;

使用适合数据格式的掩码将其转换为日期,然后将其转换为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;

使用适合数据格式的掩码将其转换为日期,然后将其转换为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;