Oracle produserer en relasjonsdatabase styringssystem som holder data i tabeller. Hver tabell inneholder kolonner , som må gis en datatype . Oracle har en spesiell datatype for datoer . Oracle dato datatype inneholder både dato og klokkeslett. Dette muliggjør bedre sammenligning og manipulasjon av datoer enn om de var bare tekstfelt . Dato Restriksjoner
Den spesielle datatype muliggjør automatisk validering av data . Ble datoer holdt som tekststrenger , ville programmerer utvikle en dataregistrering metoden må utføre kontroller at datoen kom var i et gyldig format , for eksempel , at den dagen gitt var mulig i en gitt måned . Mens håndtere datoer , mange programmerere ofte glemmer tiden element er tilstede på hver datoen som er lagret i databasen. Hvis en dato settes inn i databasen ikke inneholder en tid , den velger "00:00 ". Hvis en tid element settes inn i databasen , sikrer datoformatet at tallene som utgjør den tiden er i et gyldig format .
dato representasjon
tid forskjeller på datoer blir ofte oversett på grunn av de to ulike representasjoner av datoer i Oracle -systemet . Verdiene som ble holdt i databasen følger ikke noen anerkjent date format . De er lagret som et tall som representerer antall sekunder siden 1. januar 4712 BC . Imidlertid er dette tallet sjelden vist , selv en direkte spørringen fra databasen operativsystem datoer vises i en gitt dato format . Hvis en spørring på en dato kolonne ikke inneholder en dato format , er datoen som blir hentet i standard datoformat , som er " DD -MMM - YY . "
Tidsforskjell
en kolonne befolket av en dato funksjonen vil automatisk inneholde en riktig dato og klokkeslett . Eksempler på dette finnes kolonner befolket ved hjelp av sysdate funksjon . Sysdate gir gjeldende dato og tid, som det blir fra systemets dato og klokkeslett for databasen . Dermed noen verdier kan inneholde datoer med den tomme " 00:00" og andre har ekte tid vedlagt. Men hvis " 01-JAN-2011 00:00 " og " 01 - JAN- 2011 14:20 " er begge spørres ut av databasen , vil de begge vises som "01 - JAN - 11 ", så de vil se den samme .
Problemer
Oracle programmerere ofte glemme tiden element når man sammenligner datoer. Dette kan føre til at programmer å synes å oppføre seg riktig. Ved behandling av poster i forhold til en dato eller klokkeslett funksjon, kan programmereren være forvirrende til hvorfor en kommando for å manipulere alle rekorder med en dato kolonne verdi av sysdate - 4 ( fire dager siden) savner mange poster som den burde ha fanget . Dette er på grunn av tidsforskjellen mellom de to verdier. En sammenligning med sysdate - 4 vil bare gi poster med samme tid som det nåværende tidspunkt, men fire dager før . Ved drift med datoer , bør programmerere huske å diskontere tiden element ved å bruke TRUNC ( )-funksjonen .