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: