Syntaks
extract_datetime :: =
Beskrivelse af illustrationen extract_datetime.gif
Formål
EXTRACT
udtrækker og returnerer værdien af et specificeret datetime-felt fra et datetime- eller intervalværdiudtryk. Når du udtrækker en TIMEZONE_REGION
eller TIMEZONE_ABBR
(forkortelse), er den returnerede værdi en streng, der indeholder det relevante tidszone navn eller forkortelse. Når du udvinder en af de andre værdier, er den returnerede værdi i den gregorianske kalender. Når der ekstraheres fra en datetid med en tidszoneværdi, er den returnerede værdi i UTC. For en liste over tidszonenavne og deres tilsvarende forkortelser, spørg V$TIMEZONE_NAMES
dynamisk visning af ydeevne.
Denne funktion kan være meget nyttig til at manipulere datetime-feltværdier i store tabeller, som vist i det første eksempel nedenfor.
Bemærk:
Regionzonens navne er nødvendige for dagslysbesparelsesfunktionen. Regionens navne er gemt i to tidszonefiler. Standard tidszonefilen er en lille fil, der kun indeholder de mest almindelige tidszoner for at maksimere ydeevnen. Hvis din tidszone ikke er i standardfilen, har du ikke understøttelse af sommertid, før du giver en sti til den komplette (større) fil ved hjælp af ORA_TZFILE
miljøvariablen.
Nogle kombinationer af datetime-felt og udtryk for datetime eller intervalværdi resulterer i tvetydighed. I disse tilfælde returnerer Oracle Database UNKNOWN
(se eksemplerne, der følger for yderligere information).
Det felt, du udpakker, skal være et felt i datetime_value_expr
eller interval_value_expr
. For eksempel kan du kun udtrække YEAR
, MONTH
og DAY
fra en DATE
værdi. På samme måde kan du kun udtrække TIMEZONE_HOUR
og TIMEZONE_MINUTE
fra TIMESTAMP
WITH
TIME
ZONE
datatype.
Se også:
-
Oracle Database Administrator’s Guide for mere information om indstilling af
ORA_TZFILE
miljøvariabel -
Oracle Supportvejledning til databaseglobalisering. For en komplet oversigt over tidszoneregionsnavne i begge filer
-
“Datetime / Interval Arithmetic” for en beskrivelse af
datetime_value_expr
oginterval_value_expr
-
Oracle Database Reference for information om dynamiske præstationsvisninger
Eksempler
Følgende eksempel returnerer fra tabellen oe.orders
antallet af ordrer, der er afgivet 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 vælger fra eksempeltabellen hr.employees
alle medarbejdere, der blev ansat efter 1998:
Følgende eksempel resulterer i tvetydighed, så Oracle returnerer UNKNOWN
:
Tvetydigheden opstår, fordi den tidszone-numeriske forskydning er angivet i udtrykket, og den numeriske forskydning kan kortlægges til mere end en tidszone-region.