EXTRAKT (datetime)

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 och interval_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.

Leave a Reply

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *