Syntax
extract_datetime :: =
Beschreibung der Abbildung extract_datetime.gif
Zweck
EXTRACT
extrahiert und gibt den Wert von zurück Ein angegebenes Datum / Uhrzeit-Feld aus einem Datum / Uhrzeit- oder Intervallwertausdruck. Wenn Sie eine TIMEZONE_REGION
oder TIMEZONE_ABBR
(Abkürzung) extrahieren, ist der zurückgegebene Wert eine Zeichenfolge, die den entsprechenden Zeitzonennamen oder die entsprechende Abkürzung enthält. Wenn Sie einen der anderen Werte extrahieren, befindet sich der zurückgegebene Wert im Gregorianischen Kalender. Beim Extrahieren aus einer Datums- / Uhrzeitangabe mit einem Zeitzonenwert wird der zurückgegebene Wert in UTC angegeben. Fragen Sie für eine Auflistung der Zeitzonennamen und ihrer entsprechenden Abkürzungen die dynamische Leistungsansicht V$TIMEZONE_NAMES
ab.
Diese Funktion kann sehr nützlich sein, um Datums- / Zeitfeldwerte in sehr zu bearbeiten große Tabellen, wie im ersten Beispiel unten gezeigt.
Hinweis:
Zeitzonenregionsnamen werden von der Sommerzeitfunktion benötigt. Die Regionsnamen werden in zwei Zeitzonendateien gespeichert. Die Standardzeitzonendatei ist eine kleine Datei, die nur die gängigsten Zeitzonen enthält, um die Leistung zu maximieren. Wenn sich Ihre Zeitzone nicht in der Standarddatei befindet, erhalten Sie keine Unterstützung für die Sommerzeit, bis Sie über die Umgebungsvariable ORA_TZFILE
einen Pfad zur vollständigen (größeren) Datei angeben.
Einige Kombinationen aus datetime-Feld und datetime- oder Intervallwertausdruck führen zu Mehrdeutigkeiten. In diesen Fällen gibt Oracle Database UNKNOWN
zurück (weitere Informationen finden Sie in den folgenden Beispielen).
Das zu extrahierende Feld muss ein Feld von datetime_value_expr
oder interval_value_expr
. Beispielsweise können Sie nur YEAR
, MONTH
und DAY
aus einem DATE
Wert. Ebenso können Sie TIMEZONE_HOUR
und TIMEZONE_MINUTE
nur aus TIMESTAMP
TIME
ZONE
Datentyp.
Siehe auch:
-
Oracle Database Administrator-Handbuch für weitere Informationen zum Festlegen der Umgebungsvariablen
ORA_TZFILE
-
Oracle Unterstützungshandbuch für die Datenbank-Globalisierung. Für eine vollständige Auflistung der Zeitzonenregionsnamen in beiden Dateien
-
„Datetime / Interval Arithmetic“ für eine Beschreibung von
datetime_value_expr
undinterval_value_expr
-
Oracle-Datenbankreferenz für Informationen zu den dynamischen Leistungsansichten
Beispiele
Das folgende Beispiel gibt aus der Tabelle oe.orders
die Anzahl der Bestellungen pro Monat zurück:
Das folgende Beispiel gibt das Jahr 1998 zurück.
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
Das folgende Beispiel s wählt aus der Beispieltabelle hr.employees
alle Mitarbeiter aus, die nach 1998 eingestellt wurden:
Das folgende Beispiel führt zu Mehrdeutigkeiten, sodass Oracle UNKNOWN
:
Die Mehrdeutigkeit entsteht, weil der numerische Versatz der Zeitzone im Ausdruck angegeben ist und dieser numerische Versatz möglicherweise mehr als einem Zeitzonenbereich zugeordnet ist.