my_table の私のプロジェクトでは、イベントの時間は数値形式で保存されます。ここで、それをオラクルの日時形式に変換する必要があります。
以下に説明を示します。
例 1 :
•Sched_Arr_Tm = 0450、午前 4 時 30 分 (最初の 2 は HH (24 時間時計。04 < 12 なので、その数字を時間として使用)) に等しく、次の 2 は 1 時間に相当する分数です。 (.50 * 60 分 = 30 分)
•Sched_Arr_Tm = 2100、午後 9:00 となります (21> 12 なので、21-12=9 となります)
•Sched_Arr_Tm = 1475、02:45 Pm (最初の 2 は HH (24 時間時計。14 > 12 であるため、14-12=2 を取る)、その数字を時間として使用)) に等しく、次の 2は 1 時間に相当する分数です (.75 * 60 分 = 45 分)
•Sched_Arr_Tm = 0075 は、午前 12 時 45 分 (時間 = 00 であるため、時間 = 12) に等しく、次の 2 は 1 時間に相当する分数 (.75 * 60 分 = 45 分) です。
上記のログインに従ってデータを抽出できますが、日付への変換中にエラーが発生します。
select sched_arr_tm,
LPAD(substr(tn.sched_arr_tm, 1,length(tn.sched_arr_tm) - 2),2,'0') as HH,
RPAD(TRUNC(TO_NUMBER(substr(tn.sched_arr_tm,3,length(tn.sched_arr_tm) - 2)) * .60,0),2,'0') as MM,
'00' AS SS,
LPAD(substr(tn.sched_arr_tm,1,length(tn.sched_arr_tm) - 2),2,'0')
||':' ||
RPAD(TRUNC(TO_NUMBER(substr(tn.sched_arr_tm,3,length(tn.sched_arr_tm) - 2)) * .60,0),2,'0')
||':'||
LPAD(0,2,0) AS DTTM,
TO_DATE(LPAD(substr(tn.sched_arr_tm,1,length(tn.sched_arr_tm) - 2),2,'0')
||':' ||
RPAD(TRUNC(TO_NUMBER(substr(tn.sched_arr_tm,3,length(tn.sched_arr_tm) - 2)) * .60,0),2,'0')
||':'||
LPAD(00,2,0),'HH24:MI:SS') AS DTTM,
tn.sched_slip_arr_tm
MY_TABLE から;
このエラーが発生しています:
ORA-01858: 数値が必要な場所に非数値文字が見つかりました。