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: