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_TZFILEenvironment 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_exproginterval_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.