Fonctions de date et d'heure

Les fonctions de date et d'heure permettent de manipuler des données d'après DATE et DATETIME.

Fonction Exemple Description Syntaxe
CONVERT_TZ CONVERT_TZ(Order Date, 'UTC', 'America/Denver') Convertit une valeur de date et d'heure expr à partir du fuseau horaire indiqué par Old time zone vers le fuseau horaire indiqué par New time zone, et renvoie la valeur résultante. CONVERT_TZ(expr, 'Old time zone', 'New time zone')

CURRENT_Date

CURRENT_DATE

Renvoie la date actuelle.

Celle-ci est déterminée par le système sur lequel Oracle BI est exécuté.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Renvoie l'heure actuelle au nombre de chiffres de précision indiqué, par exemple : HH:MM:SS.SSS

En l'absence d'argument, la fonction renvoie la précision par défaut.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Renvoie la date/l'horodatage actuel au nombre de chiffres de précision indiqué.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Renvoie le nom du jour de la semaine pour l'expression de date indiquée.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Renvoie le numéro correspondant au jour du mois pour l'expression de date indiquée.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Renvoie le numéro, compris entre 1 et 7, correspondant au jour de la semaine pour l'expression de date indiquée. Par exemple, 1 correspond toujours au dimanche, 2 au lundi, et ainsi de suite jusqu'au chiffre 7 qui correspond au samedi.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Renvoie le numéro (compris entre 1 et 366) correspondant au jour de l'année pour l'expression de date indiquée.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Renvoie le numéro (compris entre 1 et 92) correspondant au jour du trimestre pour l'expression de date indiquée.

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Renvoie le numéro (compris entre 0 et 23) correspondant à l'heure pour l'expression d'heure indiquée. Par exemple, 0 correspond à minuit et 23 correspond à 23 heures.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Renvoie le numéro (compris entre 0 et 59) correspondant à la minute pour l'expression d'heure indiquée.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Renvoie le numéro (compris entre 1 et 12) correspondant au mois pour l'expression de date indiquée.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Renvoie le nom du mois pour l'expression de date indiquée.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Renvoie le numéro (compris entre 1 et 3) correspondant au mois du trimestre pour l'expression de date indiquée.

MONTH_OF_QUARTER(expr)

NOW

NOW()

Renvoie l'horodatage actuel. La fonction NOW équivaut à la fonction CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Renvoie le numéro (compris entre 1 et 4) correspondant au trimestre de l'année pour l'expression de date indiquée.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Renvoie le numéro (compris entre 0 et 59) correspondant aux secondes pour l'expression d'heure indiquée.

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Order Date")

Ajoute un nombre donné d'intervalles à un horodatage et renvoie un horodatage unique.

Les options d'intervalle suivantes sont disponibles : SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)

Renvoie le nombre total d'intervalles indiqués entre deux horodatages.

Utilisez les mêmes intervalles que TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Renvoie le numéro (compris entre 1 et 13) correspondant à la semaine du trimestre pour l'expression de date indiquée.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Renvoie le numéro (compris entre 1 et 53) correspondant à la semaine de l'année pour l'expression de date indiquée.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Renvoie l'année pour l'expression de date indiquée.

YEAR(expr)

Conseils d'utilisation des fonctions de date

Voici quelques conseils pour obtenir les meilleurs résultats lorsque vous utilisez des fonctions de date dans vos classeurs afin de calculer des périodes fiscales, de convertir des chaînes en dates, d'afficher une date et une heure dans un fuseau horaire spécifique, et de calculer les différences dans le temps.

Calcul de l'année, du trimestre et du mois fiscaux :

Les domaines ont généralement une dimension Temps. Vous pouvez donc utiliser les périodes préconfigurées, telles que le trimestre fiscal, le mois fiscal et la semaine fiscale. Si vous avez uniquement un champ de date, vous pouvez calculer ces périodes vous-même à l'aide des fonctions de date.

Dans cet exemple, le trimestre fiscal est calculé :

'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||'Q'||cast(QUARTER(TIMESTAMPADD(SQL_TSI_MONTH, 7,<same date field>)) as char)

Dans cet exemple, l'exercice et le mois fiscal sont calculés :

'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)

Remarques :

  • || valeurs concaténées.
  • cast (xxx(date) as char) extrait une partie d'un champ de date.
  • TIMESTAMPADD ajoute (ou soustrait) des périodes à partir d'une date. Cet exemple utilise la valeur de paramètre SQL_TSI_MONTH pour ajouter des mois.

Les calculs ci-dessus fonctionnent bien dans les tables. En revanche, lorsqu'ils sont utilisés dans des filtres, l'espacement entre les valeurs renvoyées peut être étrange. Dans ce cas, utilisez un calcul plus clair mais plus complexe en vous aidant de ces exemples :

'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-Q'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<same date field>,7)),'Q')
'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-'||evaluate ('to_char(%1,%2)'as char,<same date field>,'MON')

Conversion d'une chaîne en date :

Oracle Analytics établit le profil de vos données et fournit des recommandations d'enrichissement pour extraire et convertir des dates. Si vous devez convertir vous-même une chaîne en date, utilisez ces conseils.
  • Dans le concepteur de classeur, naviguez dans le panneau de données vers la colonne à convertir. Cliquez ensuite avec le bouton droit de la souris et choisissez Convertir en date. Configurez la date, puis cliquez sur Ajouter une étape.

  • Dans le concepteur de classeur, naviguez dans le panneau de données vers la colonne à convertir. Cliquez ensuite avec le bouton droit de la souris et choisissez Modifier. Configurez la date, puis cliquez sur Ajouter une étape.

    Dans la zone de texte contenant le nom de votre colonne en bleu, insérez To_DateTime( avant le nom de la colonne, puis ajoutez le format de date à utiliser après le nom de la colonne, suivi de ). Ensuite, cliquez sur Ajouter une étape.
    La description de GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png est la suivante
    .png

    Lorsque vous utilisez l'option Modifier pour créer votre fonction de conversion de date, vous pouvez également utiliser Allow_Variable_Digits afin de traiter les valeurs de colonne à un ou deux chiffres, et les arguments Null_On_Error en vue d'annuler les lignes qui ne correspondent pas au modèle requis. Reportez-vous également à REPLACE et à CAST pour découvrir d'autres méthodes de traitement des données ne correspondant pas au modèle requis.

    A la place de To_DateTime(), vous pouvez utiliser CAST() pour modifier le type de données d'une valeur. Par exemple : CAST(SalesDate AS DATE).

    Vous pouvez également utiliser l'option Remplacer. Dans le concepteur de classeur, naviguez dans le panneau de données vers la colonne à convertir. Cliquez ensuite avec le bouton droit de la souris et choisissez Remplacer. Configurez le type de remplacement de votre choix, puis cliquez sur Ajouter une étape.

Affichage d'un champ de date/heure dans un fuseau horaire spécifique :

Utilisez la fonction NEW_TIME dans la base de données avec EVALUATE. Par exemple :

evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')

Assurez-vous que le champ de date inclut le composant d'heure.

Calcul de la différence dans le temps :

Pour afficher la différence sous forme de nombre et de pourcentage entre maintenant et hier, créez des calculs en vous aidant des exemples ci-après :
  • Calcul d'un indicateur jusqu'à hier : filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Calcul de la différence : Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Calcul du pourcentage de différence : 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Remarques :

  • Ces exemples utilisent SQL_TSI_DAY. Vous pouvez toutefois utiliser WEEK et MONTH semaine après semaine et mois après mois.
  • Ces exemples fonctionnent avec un calendrier normal ou civil. Si vous avez besoin de mois et de trimestres fiscaux, utilisez les variables de référentiel dans vos calculs au lieu de TIMESTAMPADD. Sinon, vous pouvez utiliser cet exemple avec le conseil Calcul de l'année, du trimestre et du mois fiscaux.
  • Certains domaines incluent des indicateurs précalculés de type X précédent, par exemple PY (année précédente), PQ (trimestre précédent) que vous pouvez utiliser pour calculer les différences dans le temps.
  • Sinon, vous pouvez utiliser les fonctions TIME SERIES : AGO, PERIODROLLING et TODATE. Reportez-vous à Fonctions de séries temporelles.