Syntax
extract_datetime :: =
Beskrivning av illustrationen extract_datetime.gif
Syfte
EXTRACT
extraherar och returnerar värdet av ett angivet datetime-fält från ett datetime- eller intervallvärdesuttryck. När du extraherar en TIMEZONE_REGION
eller TIMEZONE_ABBR
(förkortning) är det returnerade värdet en sträng som innehåller lämpligt tidszonsnamn eller förkortning. När du extraherar något av de andra värdena är det returnerade värdet i den gregorianska kalendern. När du extraherar från en datetime med ett tidszonsvärde är värdet som returneras i UTC. För en lista över tidszonsnamn och deras motsvarande förkortningar, fråga V$TIMEZONE_NAMES
dynamisk prestandavy.
Denna funktion kan vara mycket användbar för att manipulera datatidsfältvärden stora tabeller, som visas i det första exemplet nedan.
Obs!
Tidszonens regionnamn behövs av sommartidsfunktionen. Regionnamnen lagras i två tidszonsfiler. Standardtidszonfilen är en liten fil som endast innehåller de vanligaste tidszonerna för att maximera prestanda. Om din tidszon inte finns i standardfilen har du inte stöd för sommartid förrän du ger en sökväg till den fullständiga (större) filen med hjälp av miljövariabeln ORA_TZFILE
.
Vissa kombinationer av datetime-fält och uttryck för datetime eller intervallvärde resulterar i tvetydighet. I dessa fall returnerar Oracle Database UNKNOWN
(se exemplen som följer för ytterligare information).
Fältet du extraherar måste vara ett fält i datetime_value_expr
eller interval_value_expr
. Du kan till exempel endast extrahera YEAR
, MONTH
och DAY
från en DATE
värde. På samma sätt kan du extrahera TIMEZONE_HOUR
och TIMEZONE_MINUTE
från TIMESTAMP
WITH
TIME
ZONE
datatyp.
Se även:
-
Oracle Database Administrator’s Guide för mer information om hur du ställer in
ORA_TZFILE
miljövariabel -
Oracle Supportguide för databasglobalisering. För en fullständig lista över tidszonens regionnamn i båda filerna
-
”Datetime / Interval Arithmetic” för en beskrivning av
datetime_value_expr
ochinterval_value_expr
-
Oracle Database Reference för information om dynamiska prestandavyer
Exempel
Följande exempel returnerar från oe.orders
tabellen antalet beställningar som görs i varje månad:
Följande exempel returnerar 1998.
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
Följande exempel s väljer från provtabellen hr.employees
alla anställda som anställdes efter 1998:
Följande exempel resulterar i tvetydighet, så Oracle returnerar UNKNOWN
:
Tvetydigheten uppstår eftersom den tidszonens numeriska förskjutning tillhandahålls i uttrycket, och den numeriska förskjutningen kan mappas till mer än en tidszonregion.