Oracle
 sql >> Datenbank >  >> RDS >> Oracle

TZ_OFFSET()-Funktion in Oracle

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: