Intervalli-ilmaukset
Intervalli-ilmaus antaa arvon INTERVAL
YEAR
TO
MONTH
tai INTERVAL
DAY
TO
SECOND
.
intervalli_ilmaus::=
Kuvaus kuviosta intervalli_ilmaus.gif
Lausekkeet expr1
ja expr2
voivat olla mitä tahansa lausekkeita, jotka evaluoituvat tietotyypin DATE
, TIMESTAMP
, TIMESTAMP
WITH
TIME
ZONE
tai TIMESTAMP
WITH
LOCAL
TIME
ZONE
mukaisiin arvoihin.
Datatyyppejä ja aikavälejä voidaan yhdistellä taulukossa 2-5 määriteltyjen sääntöjen mukaisesti. Kuusi intervalliarvoja tuottavaa yhdistelmää ovat kelvollisia intervalli-lausekkeessa.
Kumpikin leading_field_precision
ja fractional_second_precision
voivat olla mikä tahansa kokonaisluku välillä 0-9. Jos jätät leading_field_precision
:n pois joko DAY
:n tai YEAR
:n kohdalla, Oracle Database käyttää oletusarvoa 2. Jos jätät fractional_second_precision
:n pois toisena, tietokanta käyttää oletusarvoa 6. Jos kyselyn palauttama arvo sisältää enemmän numeroita kuin oletustarkkuus, Oracle Database palauttaa virheen. Siksi on hyvä käytäntö määrittää tarkkuus, jonka tiedät olevan vähintään yhtä suuri kuin mikä tahansa kyselyn palauttama arvo.
Esimerkiksi seuraava lauseke vähentää esimerkkitaulukon orders
order_date
-sarakkeen order_date
arvon (päivämäärän arvo) järjestelmän aikaleimasta (toisesta päivämäärän arvosta), jolloin saadaan intervalliarvon lauseke. Ei tiedetä, kuinka monta päivää sitten vanhin tilaus tehtiin, joten DAY
-lastauskentän tarkkuudelle määritetään enimmäisarvo 9:
SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders WHERE order_id = 2458;
.