sql >> Databasteknik >  >> RDS >> Oracle

Hur man beräknar skillnaden mellan två tidsstämplar i Oracle

Problem:

Du har två kolumner av typen timestamp och du vill beräkna skillnaden mellan dem.

Exempel:

I travel tabell, det finns tre kolumner:id , departure och arrival . Du vill beräkna skillnaden mellan arrival och departure .

travel tabellen ser ut så här:

id avgång ankomst
1 2018-03-25 12:00:00 2018-04-05 07:30:00
2 2019-09-12 15:50:00 2019-10-23 10:30:30
3 2018-07-14 16:15:00 2018-07-14 20:40:30
4 2018-01-05 08:35:00 2019-01-08 14:00:00

SSlösning:

SELECT
  id,
  departure,
  arrival,
  arrival - departure AS difference
FROM travel;

Resultatet är:

id avgång ankomst skillnad
1 2018-03-25 12:00:00 2018-04-05 07:30:00 10 19:30:0.0
2 2019-09-12 15:50:00 2019-10-23 10:30:30 40 18:40:30.0
3 2018-07-14 16:15:00 2018-07-14 20:40:30 0 4:25:30.0
4 2018-01-05 08:35:00 2019-01-08 14:00:00 368 5:25:0.0

Diskussion:

För att beräkna skillnaden mellan tidsstämplarna i Oracle subtraherar du helt enkelt starttidsstämpeln från sluttidsstämpeln (här:arrival - departure ). Den resulterande kolumnen kommer att vara i INTERVAL DAY TO SECOND . Den första siffran du ser är antalet hela dagar som gått från departure till arrival . Sedan ser du antalet hela timmar, hela minuter och antalet sekunder, med valfri delsekund som decimal.


  1. Senast körda frågor för en specifik databas

  2. pgmemcache vs Infinite Cache

  3. Vad är skillnaden mellan schema och databas?

  4. Beräkna medianen med en dynamisk markör