sql >> Databáze >  >> RDS >> Oracle

jak vypočítat součtový čas s datovým typem char v oracle

WITH x AS (
  SELECT t1.time_rent AS t1,
         t2.time_rent AS t2,
         ((SUBSTR(t1.time_rent,1,2) * 3600) + (SUBSTR(t1.time_rent,4,2) * 60)
         + (SUBSTR(t2.time_rent,1,2) * 3600) + (SUBSTR(t2.time_rent,4,2) * 60)) AS t 
   FROM table1 t1 
   INNER JOIN Table2 t2 
   ON t1.name=t2.name
  ),
y AS(
   SELECT t1,
          t2,
          numtodsinterval(t,'second') AS t
          FROM x
)
SELECT T1,
       T2,
       (EXTRACT(day FROM t) * 24 + EXTRACT(hour FROM t) ||':' || 
       EXTRACT(minute FROM t) ||':' || EXTRACT(second FROM t)) AS duration 
       FROM y

Výstup

T1      T2      DURATION
07:30   18:30   26:0:0

Živá ukázka



  1. mysql Vybrat z Vybrat

  2. Převod MyISAM na InnoDB. Příznivý? Následky?

  3. Migrace z MSSQL na PostgreSQL - Co byste měli vědět

  4. Vložení hodnoty NOW() do datového typu datetime vrací 0000-00-00 00:00:00