Dans Oracle Analytics, les administrateurs définissent le fuseau horaire par défaut utilisé pour les calculs de date et d'heure dans Paramètres système. Ce paramètre global s'applique à tous les calculs. Cette rubrique explique comment utiliser la fonction TIMESTAMPADD
pour indiquer un autre fuseau horaire à utiliser dans un calcul spécifique.
Définition du fuseau horaire par défaut pour les calculs dans les paramètres système
CURRENT_DATE
CURRENT_TIME()
CURRENT_TIMESTAMP()
NOW()
En tant qu'administrateur, vous pouvez modifier l'horodatage utilisé dans les calculs à l'aide de l'option Fuseau horaire par défaut pour les calculs de date dans la console, sous Paramètres système avancés. Sélectionnez le fuseau horaire de votre choix dans la liste déroulante et appliquez les modifications pour que la nouvelle valeur soit prise en compte.
.png
Pour plus d'informations sur les paramètres de fuseau horaire standard, reportez-vous à Paramètres système - Options de format.
Utilisation d'un fuseau horaire spécifique pour les horodatages dans les calculs
Pour générer dans vos calculs un horodatage différent de celui défini par le paramètre système, utilisez la fonction TIMESTAMPADD
avec CURRENT_TIMESTAMP()
ou NOW()
. Le calcul TIMESTAMPADD
de base est le suivant :
TIMESTAMPADD(SQL_TSI_<<intervalle>>, <<expression d'entier>>, <<expression d'horodatage>>)
Pour les calculs d'horodatage, HOUR
est l'intervalle, et le décalage horaire est la différence (en heures) entre l'heure UTC et le fuseau horaire à inclure dans le rapport. Par exemple :
TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP(5))
Ce calcul renvoie l'horodatage en cours avec le fuseau horaire Rocheuses (Etats-Unis). Vous pouvez créer la colonne d'horodatage en tant que colonne dérivée dans la source de table logique ou la mettre en correspondance directement avec la base de données. La différence réside dans l'emplacement d'exécution du calcul : Oracle Analytics ou la base de données. La figure suivante présente un calcul mis en correspondance directement avec la base de données dans la boîte de dialogue Générateur d'expressions - Expression.
Lorsque le fuseau horaire par défaut est défini sur UTC, la fonction CURRENT_DATE
ne renvoie pas la date correcte pour certaines heures de la journée correspondant au fuseau horaire d'un utilisateur. Par exemple, lorsqu'il est minuit (heure UTC), la date locale ne correspond pas à la date UTC pour la durée du décalage horaire.
La conversion du calcul d'horodatage en date résout le problème. Par exemple :
cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)
La figure suivante présente un calcul créé en tant que colonne dérivée dans la boîte de dialogue Générateur d'expressions - Colonne logique dérivée.
Pour les rapports uniques ou spécifiques, vous pouvez créer des calculs d'horodatage au niveau du rapport dans une visualisation de données ou dans une analyse classique. Si vous envisagez de réutiliser les calculs, il est souvent plus facile de les définir en tant que colonnes dans le modèle sémantique (ou fichier RPD).
Pour plus d'informations sur les fonctions mentionnées dans cette rubrique, reportez-vous à Fonctions de date et d'heure et à Fonctions de séries temporelles.