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: