KIVONAT (dátumidő)

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 és interval_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ő.

Leave a Reply

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük