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

Jak vypočítat rozdíl mezi dvěma časovými razítky v Oracle

Problém:

Máte dva sloupce typu timestamp a chcete vypočítat rozdíl mezi nimi.

Příklad:

V travel tabulka má tři sloupce:id , departure a arrival . Chcete vypočítat rozdíl mezi arrival a departure .

travel tabulka vypadá takto:

id odjezd příjezd
1 2018-03-25 12:00:00 2018-04-05 07:30:00
2 2019-09-12 15:50:00 23. 10. 2019 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

SSřešení:

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

Výsledek je:

id odjezd příjezd rozdíl
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 23. 10. 2019 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

Diskuse:

Chcete-li vypočítat rozdíl mezi časovými razítky v Oracle, jednoduše odečtěte počáteční časové razítko od koncového časového razítka (zde:arrival - departure ). Výsledný sloupec bude v INTERVAL DAY TO SECOND . První číslo, které vidíte, je počet celých dní, které uplynuly od departure do arrival . Potom uvidíte počet celých hodin, celých minut a počet sekund, přičemž desetinné místo bude libovolnou částečnou sekundou.


  1. Jak zakázat kontrolu cizího klíče v MySQL

  2. Jak extrahovat dvě po sobě jdoucí číslice z textového pole v MySQL?

  3. Přirozené připojení na SQL Server

  4. Přírůstkové statistiky NEPOUŽÍVÁ nástroj Query Optimizer