Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction TZ_OFFSET() dans Oracle

Dans Oracle Database, le TZ_OFFSET() La fonction renvoie le décalage de fuseau horaire correspondant à l'argument en fonction de la date d'exécution de l'instruction.

Syntaxe

La syntaxe ressemble à ceci :

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

Exemples

Voici quelques exemples à démontrer.

Nom de la région du fuseau horaire

Vous pouvez transmettre un nom de région de fuseau horaire valide :

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

Résultat :

+09:30

Voici comment obtenir une liste des fuseaux horaires pris en charge dans votre système.

Décalage du fuseau horaire

Vous pouvez passer un décalage de fuseau horaire, auquel cas il se renvoie tout simplement :

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

Résultat :

-10:00

Le SESSIONTIMEZONE Fonction

Le SESSIONTIMEZONE La fonction renvoie le fuseau horaire de la session en cours. Vous pouvez l'utiliser pour obtenir le décalage horaire de votre session en cours.

Exemple :

SELECT 
    SESSIONTIMEZONE,
    TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;

Résultat dans ma session :

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

Le DBTIMEZONE Fonction

Le DBTIMEZONE La fonction renvoie le fuseau horaire de la base de données. Cela peut ou non être le même que le SESSIONTIMEZONE sur votre système.

Exemple :

SELECT 
    DBTIMEZONE,
    TZ_OFFSET(DBTIMEZONE)
FROM DUAL;

Résultat :

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

Arguments nuls

Passer null donne null :

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

Résultat :

null

Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois que null se produit à la suite d'un SQL SELECT déclaration.

Cependant, vous pouvez utiliser SET NULL pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null doit être retourné.

Argument manquant

Appeler la fonction avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :

SELECT TZ_OFFSET()
FROM DUAL;

Résultat :

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: