In der Oracle-Datenbank der TZ_OFFSET()
Die Funktion gibt den Zeitzonenoffset zurück, der dem Argument entspricht, basierend auf dem Datum, an dem die Anweisung ausgeführt wird.
Syntax
Die Syntax lautet wie folgt:
TZ_OFFSET({ 'time_zone_name'
| '{ + | - } hh : mi'
| SESSIONTIMEZONE
| DBTIMEZONE
}
)
Beispiele
Hier sind einige Beispiele zur Veranschaulichung.
Name der Zeitzonenregion
Sie können einen gültigen Zeitzonenregionsnamen übergeben:
SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL;
Ergebnis:
+09:30
So erhalten Sie eine Liste der unterstützten Zeitzonen in Ihrem System.
Zeitzonenverschiebung
Sie können ein Zeitzonen-Offset übergeben, in diesem Fall gibt es einfach selbst zurück:
SELECT TZ_OFFSET('-10:00')
FROM DUAL;
Ergebnis:
-10:00
Die SESSIONTIMEZONE
Funktion
Die SESSIONTIMEZONE
Die Funktion gibt die Zeitzone der aktuellen Sitzung zurück. Sie können dies verwenden, um den Zeitzonenoffset Ihrer aktuellen Sitzung abzurufen.
Beispiel:
SELECT
SESSIONTIMEZONE,
TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;
Ergebnis meiner Sitzung:
SESSIONTIMEZONE TZ_OFFSET(SESSIONTIMEZONE) _____________________ _____________________________ Australia/Brisbane +10:00
Die DBTIMEZONE
Funktion
Die DBTIMEZONE
Funktion gibt die Zeitzone der Datenbank zurück. Dies kann mit der SESSIONTIMEZONE
identisch sein oder nicht auf Ihrem System.
Beispiel:
SELECT
DBTIMEZONE,
TZ_OFFSET(DBTIMEZONE)
FROM DUAL;
Ergebnis:
DBTIMEZONE TZ_OFFSET(DBTIMEZONE) _____________ ________________________ +00:00 +00:00
Null-Argumente
Übergabe von null
ergibt null
:
SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL;
Ergebnis:
null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null
tritt als Ergebnis eines SQL SELECT
auf Erklärung.
Sie können jedoch SET NULL
verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null
zurückgegeben werden soll.
Fehlendes Argument
Der Aufruf der Funktion mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT TZ_OFFSET()
FROM DUAL;
Ergebnis:
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: