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: