Sintaxă
extract_datetime :: =
Descrierea ilustrației extract_datetime.gif
Scop
EXTRACT
extrage și returnează valoarea un câmp datetime specificat dintr-o expresie de valoare datetime sau interval. Când extrageți un TIMEZONE_REGION
sau TIMEZONE_ABBR
(prescurtare), valoarea returnată este un șir care conține numele sau abrevierea corespunzătoare a fusului orar. Când extrageți oricare dintre celelalte valori, valoarea returnată se află în calendarul gregorian. Când se extrage dintr-un datetime cu o valoare de fus orar, valoarea returnată este în UTC. Pentru o listă a numelor de fus orar și abrevierile corespunzătoare, interogați vizualizarea dinamică a performanței V$TIMEZONE_NAMES
.
Această funcție poate fi foarte utilă pentru manipularea valorilor câmpului datetime în tabele mari, așa cum se arată în primul exemplu de mai jos.
Notă:
Numele regiunilor fusului orar sunt necesare pentru funcția de vară. Numele regiunilor sunt stocate în două fișiere de fus orar. Fișierul implicit de fus orar este un fișier mic care conține doar cele mai frecvente fusuri orare pentru a maximiza performanța. Dacă fusul orar nu se află în fișierul implicit, atunci nu veți beneficia de asistență pentru economia de vară până când nu furnizați o cale către fișierul complet (mai mare) prin intermediul variabilei de mediu ORA_TZFILE
.
Unele combinații ale câmpului datetime și expresia valorii datetime sau interval determină ambiguitate. În aceste cazuri, Oracle Database returnează UNKNOWN
(consultați exemplele care urmează pentru informații suplimentare).
Câmpul pe care îl extrageți trebuie să fie un câmp din datetime_value_expr
sau interval_value_expr
. De exemplu, puteți extrage numai YEAR
, MONTH
și DAY
dintr-un DATE
valoare. La fel, puteți extrage TIMEZONE_HOUR
și TIMEZONE_MINUTE
numai din TIMESTAMP
WITH
TIME
ZONE
tip de date.
Vezi și:
-
Ghidul administratorului bazei de date Oracle pentru mai multe informații despre setarea variabilei de mediu
ORA_TZFILE
-
Oracle Ghid de asistență pentru globalizarea bazei de date. Pentru o listă completă a numelor de regiuni ale fusului orar în ambele fișiere
-
„Datetime / Interval Arithmetic” pentru o descriere a
datetime_value_expr
șiinterval_value_expr
-
Oracle Database Reference pentru informații despre vizualizările dinamice ale performanței
Exemple
Următorul exemplu returnează din tabelul oe.orders
numărul de comenzi plasate în fiecare lună:
Următorul exemplu returnează anul 1998.
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
Următorul exemplu s alege din tabelul eșantion hr.employees
toți angajații care au fost angajați după 1998:
Următorul exemplu are ca rezultat ambiguitate, astfel încât Oracle returnează UNKNOWN
:
Ambiguitatea apare deoarece offsetul numeric al fusului orar este furnizat în expresie, iar respectivul offset numeric poate fi mapat la mai multe regiuni de fus orar.