Syntaxis
extract_datetime :: =
Beschrijving van de illustratie extract_datetime.gif
Doel
EXTRACT
extraheert en retourneert de waarde van een gespecificeerd datetime-veld uit een datetime- of intervalwaarde-expressie. Wanneer u een TIMEZONE_REGION
of TIMEZONE_ABBR
(afkorting) extraheert, is de geretourneerde waarde een tekenreeks met de juiste tijdzonienaam of afkorting. Wanneer u een van de andere waarden extraheert, staat de geretourneerde waarde in de Gregoriaanse kalender. Bij het extraheren van een datetime met een tijdzonewaarde, is de geretourneerde waarde in UTC. Voor een lijst met namen van tijdzones en hun overeenkomstige afkortingen, vraagt u de V$TIMEZONE_NAMES
dynamische prestatieweergave op.
Deze functie kan erg handig zijn voor het manipuleren van datetime-veldwaarden in zeer grote tabellen, zoals getoond in het eerste voorbeeld hieronder.
Opmerking:
Tijdzonegebieden zijn nodig voor de zomertijdfunctie. De regionamen worden opgeslagen in twee tijdzonebestanden. Het standaardtijdzonebestand is een klein bestand dat alleen de meest voorkomende tijdzones bevat om de prestaties te maximaliseren. Als uw tijdzone niet in het standaardbestand staat, heeft u geen ondersteuning voor zomertijd totdat u een pad naar het volledige (grotere) bestand opgeeft via de ORA_TZFILE
omgevingsvariabele.
Sommige combinaties van datetime-veld en datetime- of intervalwaarde-expressie resulteren in dubbelzinnigheid. In deze gevallen retourneert Oracle Database UNKNOWN
(zie de voorbeelden die volgen voor aanvullende informatie).
Het veld dat u aan het extraheren bent, moet een veld zijn van de datetime_value_expr
of interval_value_expr
. U kunt bijvoorbeeld alleen YEAR
, MONTH
en DAY
extraheren uit een DATE
waarde. Evenzo kunt u TIMEZONE_HOUR
en TIMEZONE_MINUTE
alleen extraheren uit de TIMESTAMP
WITH
TIME
ZONE
datatype.
Zie ook:
-
Oracle Database Administrator’s Guide voor meer informatie over het instellen van de
ORA_TZFILE
omgevingsvariabele -
Oracle Ondersteuningsgids voor databaseglobalisering voor een volledige lijst van de namen van de tijdzonegebieden in beide bestanden
-
“Datetime / Interval Arithmetic” voor een beschrijving van
datetime_value_expr
eninterval_value_expr
-
Oracle Database Reference voor informatie over de dynamische prestatieweergaven
Voorbeelden
Het volgende voorbeeld geeft uit de oe.orders
-tabel het aantal bestellingen terug dat in elke maand is geplaatst:
Het volgende voorbeeld retourneert het jaar 1998.
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
Het volgende voorbeeld s kiest uit de voorbeeldtabel hr.employees
alle werknemers die zijn aangenomen na 1998:
Het volgende voorbeeld resulteert in dubbelzinnigheid, dus Oracle retourneert UNKNOWN
:
De dubbelzinnigheid ontstaat doordat de numerieke offset van de tijdzone in de uitdrukking wordt verstrekt, en die numerieke offset kan worden toegewezen aan meer dan één tijdzonegebied.