Syntaks
extract_datetime :: =
Beskrivelse av illustrasjonen extract_datetime.gif
Formål
EXTRACT
trekker ut og returnerer verdien av et spesifisert datetime-felt fra et datetime eller intervallverdiuttrykk. Når du trekker ut en TIMEZONE_REGION
eller TIMEZONE_ABBR
(forkortelse), er verdien som returneres en streng som inneholder riktig tidssonenavn eller forkortelse. Når du trekker ut noen av de andre verdiene, er verdien som returneres i den gregorianske kalenderen. Når du trekker ut fra en datetid med en tidssoneverdi, er verdien som returneres i UTC. Hvis du vil ha en liste over tidssonenavn og tilhørende forkortelser, kan du spørre V$TIMEZONE_NAMES
dynamisk ytelsesvisning.
Denne funksjonen kan være veldig nyttig for å manipulere feltverdier for datetime i svært store tabeller, som vist i det første eksemplet nedenfor.
Merk:
Regionssonnavn er nødvendig for sommertid. Regionnavnene lagres i to tidssonefiler. Standard tidssonefil er en liten fil som bare inneholder de vanligste tidssonene for å maksimere ytelsen. Hvis tidssonen din ikke er i standardfilen, har du ikke støtte for sommertid før du gir en sti til den komplette (større) filen ved hjelp av ORA_TZFILE
miljøvariabelen.
Noen kombinasjoner av datetime-felt og uttrykk for datetime eller intervallverdi resulterer i tvetydighet. I disse tilfellene returnerer Oracle Database UNKNOWN
(se eksemplene som følger for ytterligere informasjon).
Feltet du trekker ut må være et felt i datetime_value_expr
eller interval_value_expr
. Du kan for eksempel bare trekke ut YEAR
, MONTH
og DAY
fra en DATE
verdi. På samme måte kan du bare trekke TIMEZONE_HOUR
og TIMEZONE_MINUTE
fra TIMESTAMP
WITH
TIME
ZONE
datatype.
Se også:
-
Oracle Database Administrator’s Guide for more information about setting the
ORA_TZFILE
environment variable -
Oracle Støtteveiledning for databaseglobalisering. For en fullstendig oversikt over tidssone-regionnavn i begge filer
-
«Datetime / Interval Arithmetic» for en beskrivelse av
datetime_value_expr
oginterval_value_expr
-
Oracle Database Reference for informasjon om dynamiske ytelsesvisninger
Eksempler
Følgende eksempel returnerer fra oe.orders
-tabellen antall ordrer som er plassert i hver måned:
Følgende eksempel returnerer året 1998.
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
Følgende eksempel er velger fra prøvetabellen hr.employees
alle ansatte som ble ansatt etter 1998:
Eksemplet nedenfor resulterer i tvetydighet, så Oracle returnerer UNKNOWN
:
Uklarheten oppstår fordi den tidssone numeriske forskyvningen er gitt i uttrykket, og den numeriske forskyvningen kan tilordnes til mer enn en tidssoneregion.