Je hebt een gebrekkig ontwerp .
- Je mag nooit een datetime store opslaan waarde als tekenreeks .
- DATUM heeft altijd zowel datum- als tijdelementen, dus het is niet nodig om het tijdelement apart op te slaan.
Hoe dan ook, als tijdelijke oplossing moet je eerst de tekenreeks converteren naar datum en dan de duur vinden in seconden , voeg de seconden toe aan TRUNC(SYSDATE)
, dan is de rest eenvoudig datumopmaak .
Bijvoorbeeld,
SQL> WITH sample_data AS(
2 SELECT '21:30:03' START_TIME, '21:34:11' END_TIME FROM dual
3 )
4 SELECT start_time,
5 end_time,
6 TO_CHAR (TRUNC (SYSDATE) + (to_date(end_time, 'HH24:MI:SS') -
7 to_date(start_time, 'HH24:MI:SS')
8 ) , 'hh24:mi:ss' ) duration
9 FROM sample_data;
START_TI END_TIME DURATION
-------- -------- --------
21:30:03 21:34:11 00:04:08
SQL>