Składnia
extract_datetime :: =
Opis ilustracji extract_datetime.gif
Cel
EXTRACT
wyodrębnia i zwraca wartość określone pole daty i godziny z wyrażenia wartości daty i godziny lub przedziału czasu. Podczas wyodrębniania TIMEZONE_REGION
lub TIMEZONE_ABBR
(skrót) zwracana wartość jest ciągiem zawierającym odpowiednią nazwę strefy czasowej lub skrót. Podczas wyodrębniania innych wartości zwracana wartość znajduje się w kalendarzu gregoriańskim. Podczas wyodrębniania z daty i godziny z wartością strefy czasowej zwracana wartość jest w czasie UTC. Aby uzyskać listę nazw stref czasowych i odpowiadających im skrótów, przeszukaj V$TIMEZONE_NAMES
dynamiczny widok wydajności.
Ta funkcja może być bardzo przydatna do manipulowania wartościami pól daty i godziny w bardzo duże tabele, jak pokazano w pierwszym przykładzie poniżej.
Uwaga:
Nazwy stref czasowych są wymagane przez funkcję czasu letniego. Nazwy regionów są przechowywane w dwóch plikach stref czasowych. Domyślny plik strefy czasowej to mały plik zawierający tylko najpopularniejsze strefy czasowe, aby zmaksymalizować wydajność. Jeśli Twoja strefa czasowa nie znajduje się w pliku domyślnym, nie będziesz mieć obsługi czasu letniego, dopóki nie podasz ścieżki do pełnego (większego) pliku za pomocą zmiennej środowiskowej ORA_TZFILE
.
Niektóre kombinacje pola typu data-godzina i wyrażenie wartości typu data-godzina lub przedział powodują niejednoznaczność. W takich przypadkach Oracle Database zwraca UNKNOWN
(dodatkowe informacje można znaleźć w poniższych przykładach).
Wyodrębniane pole musi być polem elementu datetime_value_expr
lub interval_value_expr
. Na przykład możesz wyodrębnić tylko YEAR
, MONTH
i DAY
z DATE
wartość. Podobnie możesz wyodrębnić TIMEZONE_HOUR
i TIMEZONE_MINUTE
tylko z TIMESTAMP
WITH
TIME
ZONE
typ danych.
Zobacz też:
-
Podręcznik administratora bazy danych Oracle Database, aby uzyskać więcej informacji na temat ustawiania
ORA_TZFILE
zmiennej środowiskowej -
Oracle Podręcznik obsługi globalizacji baz danych, aby uzyskać pełną listę nazw stref czasowych w obu plikach
-
„Datetime / Interval Arithmetic”, aby uzyskać opis
datetime_value_expr
iinterval_value_expr
-
Oracle Database Reference zawiera informacje o dynamicznych widokach wydajności
Przykłady
Poniższy przykład zwraca z tabeli oe.orders
liczbę zamówień złożonych w każdym miesiącu:
Poniższy przykład zwraca rok 1998.
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
Poniższy przykład s wybiera z przykładowej tabeli hr.employees
wszystkich pracowników zatrudnionych po 1998 r .:
Poniższy przykład powoduje niejednoznaczność, więc Oracle zwraca UNKNOWN
:
Niejednoznaczność wynika z liczbowego przesunięcia strefy czasowej w wyrażeniu, a to przesunięcie liczbowe może być mapowane na więcej niż jeden region strefy czasowej.