Ниже показан исполняемый оператор: Успешная попытка:
INSERT INTO Personnel_Assignment (DATE, testno, Hours)
SELECT '21-OCT-2011', '12345',
CASE
WHEN Extract(day From(S.ENDTIME-S.STARTTIME) ) >= 1
THEN (Extract(Day From(S.ENDTIME-S.STARTTIME) ) * 24
+ Extract(Hour From(S.ENDTIME-S.STARTTIME) ) )
WHEN S.endtime IS NULL
THEN NULL
ELSE
Extract(Hour From(S.ENDTIME-S.STARTTIME) ) )
||'hrs' End ||
Extract(Minute From(S.ENDTIME-S.STARTTIME) ) || 'Min' As Hours
FROM Schedule S`
Обратите внимание, что тип данных для конечного и начального времени является меткой времени с часовым поясом в этом формате:
Nls_Timestamp_Tz_Format='HH24:MI TZR'
Простовопрос, который я хотел бы задать: мой тип данных для часов varchar2. И если я хочу в итоге подвести итог моих часов из результатов, приведенных выше, было бы утомительно преобразовывать их в число?
Спасибо