/ / Dodawanie czasu w HH: Format MM - Zapytanie SQL - sql, time, oracle11g, timestamp

Dodawanie czasu w GG: MM Format - zapytanie SQL - sql, time, oracle11g, timestamp

Sir / Mam,

Korzystam z Oracle 11g. Mam tabelę o nazwie "Timeduration". Zawiera czas określony w godzinach i minutach. Chcę uzyskać całkowity czas w godzinach i minutach.

Timeduration
05:37
06:40
03:45
02:50
07:58

Chcę całkowity czas jako 25:30. Jak mogę napisać kod dla tego? Proszę pomóż mi."

Odpowiedzi:

1 dla odpowiedzi № 1
with t as (
select "05:37" as timeduration from dual union all
select "06:40" as timeduration from dual union all
select "03:45" as timeduration from dual union all
select "02:50" as timeduration from dual union all
select "07:58" as timeduration from dual
),
d as (
select
--
--  4  Converting the sum obtained in (3) into
--     an interval
numtodsinterval(
--
--  3  Summing the day fractions obtained in (2)
sum(
--
--  1  Convert the string "HH:MM" to a real date.
--
--     For example 05:37 becomes January 1st 0001 5:37
to_date("00010101" || t.timeduration, "yyyymmddhh24:mi")
--
--  2  Subtract January 1st 0001 from that date
--
--     The result is a number of a day"s length
--    [1: 24 hours, 0.3: 8 hours etc)
- date "0001-01-01"),
--
"DAY"
) interval
from
t
)
select
(
--  5  How many days are in the interval. Each day
--     corresponds to 24 hours:
extract (day  from d.interval) * 24 +
--
--  6  The hours «below» 24 hours must be added
--     seperatly:
extract (hour from d.interval)
)
--
--  7  Hours are now extracted. Append the delimiter
|| ":" ||
(
--
--  8  Finally: get the minutes from the interval
extract (minute from d.interval)
)
result
from d;