Szintaxis
extract_datetime :: =
Az extract_datetime.gif ábra leírása
Cél
EXTRACT
kivonja és visszaadja a megadott dátum és idő mező egy dátum vagy intervallum érték kifejezésből. Ha kivon egy TIMEZONE_REGION
vagy TIMEZONE_ABBR
(rövidítést), a visszaadott érték egy karakterlánc, amely a megfelelő időzóna nevét vagy rövidítését tartalmazza. Ha kibontja a többi értéket, a visszaadott érték a Gergely-naptárban található. Ha egy időzónából időzónás értékkel vonunk ki, a visszaküldött érték UTC-ben van megadva. Az időzóna nevek és azok megfelelő rövidítéseinek felsorolásához kérdezze meg a V$TIMEZONE_NAMES
dinamikus teljesítmény nézetet.
Ez a funkció nagyon hasznos lehet a dátumidő mezőértékeinek kezelésében nagyon nagy táblázatok, amint azt az alábbi első példa mutatja.
Megjegyzés:
Az időzóna régiónevekre a nyári időszámítás funkció szükséges. A régióneveket két időzónafájl tárolja. Az alapértelmezett időzóna fájl egy kis fájl, amely csak a leggyakoribb időzónákat tartalmazza a teljesítmény maximalizálása érdekében. Ha az időzónája nem szerepel az alapértelmezett fájlban, akkor nem lesz nyári időszámítási támogatása, amíg a ORA_TZFILE
környezeti változó útján megadja a teljes (nagyobb) fájl elérési útját.
A dátumidő mező és a dátumidő vagy intervallumérték kifejezés egyes kombinációi kétértelműséget eredményeznek. Ezekben az esetekben az Oracle Database UNKNOWN
-et ad vissza (további információkért lásd az alábbi példákat).
A kibontandó mezőnek a datetime_value_expr
vagy interval_value_expr
. Például csak YEAR
, MONTH
és DAY
nyerhet ki egy DATE
érték. Hasonlóképpen, kivonhatja a TIMEZONE_HOUR
és TIMEZONE_MINUTE
elemeket csak a TIMESTAMP
WITH
TIME
ZONE
adattípus.
Lásd még:
-
Az Oracle Database Administrator útmutatója a
ORA_TZFILE
környezeti változó beállításáról -
Oracle Adatbázis-globalizációs támogatási útmutató: az időzóna-régiók nevének teljes felsorolásához mindkét fájlban
-
“Datetime / Interval Arithmetic” az
datetime_value_expr
ésinterval_value_expr
-
Oracle Database Reference a dinamikus teljesítménynézetekkel kapcsolatos információkért
Példák
A következő példa a oe.orders
táblából adja vissza az egyes hónapokban leadott rendelések számát:
A következő példa az 1998-as évet adja vissza.
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
A következő p kiválasztja a mintatáblázatból hr.employees
az összes alkalmazottat, akiket 1998 után vettek fel:
A következő példa kétértelműséget eredményez, így az Oracle visszaadja a UNKNOWN
:
A kétértelműség azért merül fel, mert az időzóna numerikus eltolása meg van adva a kifejezésben, és ez a numerikus eltolás több időzónarégióra is leképezhető.