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.