Oracle
 sql >> Database >  >> RDS >> Oracle

TZ_OFFSET() Funzione in Oracle

In Oracle Database, il TZ_OFFSET() La funzione restituisce l'offset del fuso orario corrispondente all'argomento in base alla data di esecuzione dell'istruzione.

Sintassi

La sintassi è questa:

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

Esempi

Ecco alcuni esempi da dimostrare.

Nome della regione del fuso orario

Puoi passare un nome di regione con fuso orario valido:

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

Risultato:

+09:30

Ecco come ottenere un elenco dei fusi orari supportati nel tuo sistema.

Offset fuso orario

Puoi passare un offset di fuso orario, nel qual caso restituisce semplicemente se stesso:

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

Risultato:

-10:00

Il SESSIONTIMEZONE Funzione

Il SESSIONTIMEZONE la funzione restituisce il fuso orario della sessione corrente. Puoi usarlo per ottenere l'offset del fuso orario della tua sessione corrente.

Esempio:

SELECT 
    SESSIONTIMEZONE,
    TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;

Risultato nella mia sessione:

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

Il DBTIMEZONE Funzione

Il DBTIMEZONE la funzione restituisce il fuso orario del database. Questo può essere o meno lo stesso di SESSIONTIMEZONE sul tuo sistema.

Esempio:

SELECT 
    DBTIMEZONE,
    TZ_OFFSET(DBTIMEZONE)
FROM DUAL;

Risultato:

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

Argomenti nulli

Passaggio null risulta null :

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

Risultato:

null

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che null si verifica come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Argomento mancante

Chiamando la funzione con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:

SELECT TZ_OFFSET()
FROM DUAL;

Risultato:

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: