The Oracle databashanterare kan lagra flera datatyper i databasen områden , inklusive mänskligt läsbara strängar med datum och tider . Beräkna det exakta skillnaden mellan två tidpunkter är en mycket vanlig operation , det kan behövas för att skapa ett nytt fält , en vy eller att filtrera resultatet av en fråga . Du kan beräkna exakta tidsskillnader i din Oracle tabeller och frågeresultat . Instruktioner
1
Deklarera fälten lagra start-och sluttid vars skillnad du slutligen vill beräkna ha typ TIMESTAMP . Den typen TIMESTAMP är det som gör att du högsta precision , ner till bråkdelar av en sekund . Till exempel , definiera din tabell enligt följande :
CREATE TABLE times_for_diff {
initial_time TIMESTAMP ,
final_time TIMESTAMP
} ;
2
fylla din tabell med lämplig funktion för att konvertera mellan en mänskligt läsbar typ och tidsstämpel. Normalt är datum och tider kodade som strängar. Denna exempelkod infogar ett rekord i provet tabellen :
INSERT INTO times_for_diff ( initial_time , final_time ) katalog
VALUES ( TO_TIMESTAMP ( '30 .5.1990:12:00:00 ' , ' DD . mm.yyyy : HH24 : MI : SS ' ) ,
TO_TIMESTAMP ( 31 .7.1992:14:00:00 ' , ' DD.MM.ÅÅÅÅ : HH24 : MI : SS ' ) katalog
) ;
COMMIT ,
provet Starttid är kl 30 maj 1990, den sista tiden är 02:00 , 31 juli, 1993
3
Beräkna skillnaden med hjälp av den inbyggda Oracle operatör som subtraherar en tidsstämpel från en annan , enligt följande :
SELECT ( final_time - initial_time ) katalog
fRÅN times_for_diff ;
utgången av frågan kommer att bestå av skillnaden mellan de två gånger i varje rad av " times_for_diff " bord .