Oracle database manager kan lagre flere datatyper i databasen felt , inkludert lesbar strenger med datoer og klokkeslett . Beregning den eksakte forskjellen mellom to øyeblikk i tid er en svært vanlig operasjon , det kan være nødvendig for å opprette et nytt felt , en visning eller for å filtrere resultatene av en spørring . Du kan beregne nøyaktige tidsforskjeller i Oracle tabeller og spørringer resultater . Instruksjoner
en
Erklærer feltene lagring ved begynnelsen og slutten tid hvis forskjellen du til slutt vil beregne som å ha typen TIMESTAMP . Typen TIMESTAMP er en som lar deg den høyeste presisjon , ned til brøkdeler av et sekund. For eksempel definere tabellen som følger : en
CREATE TABLE times_for_diff {
initial_time TIMESTAMP , etter
final_time TIMESTAMP
};
2
Befolke tabellen ved hjelp av riktig funksjon for å konvertere mellom en lesbar type og tidsstempel. Vanligvis er datoer og klokkeslett kodet som strenger . Denne prøven kode setter en rekord i prøven bordet : en
INSERT INTO times_for_diff ( initial_time , final_time )
VALUES ( TO_TIMESTAMP ( '30 .5.1990:12:00:00 ',' DD . MM.YYYY : HH24 : MI: SS ' ) , etter
TO_TIMESTAMP ( '31 .7.1992:14:00:00 ', ' DD.MM.ÅÅÅÅ : HH24 : MI: SS ')
< p> ) ;
COMMIT ;
prøven første er kl 30. mai 1990, den siste tiden er 14:00 , 31 juli 1993
3
Beregn forskjellen ved hjelp av den innebygde Oracle operatør som trekker fra ett tidsstempel fra en annen , som følger : en
SELECT ( final_time - initial_time )
fRA times_for_diff ;
< p> utgangen av spørringen vil bestå av forskjellen mellom de to ganger i hver rad av " times_for_diff " tabellen .