Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja TZ_OFFSET() w Oracle

W bazie danych Oracle TZ_OFFSET() funkcja zwraca przesunięcie strefy czasowej odpowiadające argumentowi na podstawie daty wykonania instrukcji.

Składnia

Składnia wygląda tak:

TZ_OFFSET({ 'time_zone_name'
          | '{ + | - } hh : mi'
          | SESSIONTIMEZONE
          | DBTIMEZONE
          }
         )

Przykłady

Oto kilka przykładów do zademonstrowania.

Nazwa regionu strefy czasowej

Możesz podać prawidłową nazwę regionu strefy czasowej:

SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL;

Wynik:

+09:30

Oto jak uzyskać listę obsługiwanych stref czasowych w Twoim systemie.

Przesunięcie strefy czasowej

Możesz podać przesunięcie strefy czasowej, w którym to przypadku po prostu zwraca się:

SELECT TZ_OFFSET('-10:00')
FROM DUAL;

Wynik:

-10:00

SESSIONTIMEZONE Funkcja

SESSIONTIMEZONE funkcja zwraca strefę czasową bieżącej sesji. Możesz użyć tego, aby uzyskać przesunięcie strefy czasowej bieżącej sesji.

Przykład:

SELECT 
    SESSIONTIMEZONE,
    TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;

Wynik w mojej sesji:

      SESSIONTIMEZONE    TZ_OFFSET(SESSIONTIMEZONE) 
_____________________ _____________________________ 
Australia/Brisbane    +10:00                       

DBTIMEZONE Funkcja

DBTIMEZONE funkcja zwraca strefę czasową bazy danych. Może to być lub nie to samo, co SESSIONTIMEZONE w twoim systemie.

Przykład:

SELECT 
    DBTIMEZONE,
    TZ_OFFSET(DBTIMEZONE)
FROM DUAL;

Wynik:

   DBTIMEZONE    TZ_OFFSET(DBTIMEZONE) 
_____________ ________________________ 
+00:00        +00:00                  

Argumenty zerowe

Przekazywanie null wyniki w null :

SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL;

Wynik:

null

Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Brakujący argument

Wywołanie funkcji z niewłaściwą liczbą argumentów lub bez przekazania żadnych argumentów skutkuje błędem:

SELECT TZ_OFFSET()
FROM DUAL;

Wynik:

Error starting at line : 1 in command -
SELECT TZ_OFFSET()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle INSERT do dwóch tabel w jednym zapytaniu

  2. Jak wyświetlić błędy w sqlplus

  3. Oracle PL/SQL:Eksportuj dane z tabeli do CSV

  4. Ucieczka przed symbolami wieloznacznymi w LIKE

  5. Dowiedz się więcej o pakiecie DBMS_OUTPUT w Oracle