Les fonctions de date/heure traitent les données en fonction de DATE
et DATETIME
.
Fonction | Exemple | Description | Syntaxe |
---|---|---|---|
CURRENT_Date |
|
Retourne la date courante. La date est déterminée par le système dans lequel Oracle BI est exécuté. |
|
CURRENT_TIME |
|
Retourne l'heure courante avec le niveau de précision donné, par exemple : HH:MM:SS.SSS Si aucun argument n'est spécifié, la fonction retourne le niveau de précision par défaut. |
|
CURRENT_TIMESTAMP |
|
Retourne la date/l'horodatage au niveau de précision spécifié. |
|
DAYNAME |
|
Retourne le nom de la journée de la semaine pour une expression de date spécifiée. |
|
DAYOFMONTH |
|
Retourne le numéro du jour dans le mois pour l'expression de date spécifiée. |
|
DAYOFWEEK |
|
Retourne un numéro entre 1 et 7 correspondant au jour dans l'année pour une expression de date spécifiée. Par exemple, 1 correspond toujours à dimanche, 2 à lundi, etc. |
|
DAYOFYEAR |
|
Retourne un numéro entre 1 et 366 correspondant au jour dans l'année pour une expression de date spécifiée. |
|
DAY_OF_QUARTER |
|
Retourne un numéro entre 1 et 92 correspondant au jour dans le trimestre pour une expression de date donnée. |
|
HOUR |
|
Retourne un numéro entre 0 et 23 correspondant à l'heure pour une expression d'heure donnée. Par exemple, 0 correspond à 0 h et 23 correspond à 23 h. |
|
MINUTE |
|
Retourne un numéro entre 0 et 59 correspondant aux minutes pour une expression d'heure spécifiée. |
|
MONTH |
|
Retourne un numéro entre 1 et 12 correspondant au mois pour une expression de date spécifiée. |
|
MONTHNAME |
|
Retourne le nom du mois pour une expression de date spécifiée. |
|
MONTH_OF_QUARTER |
|
Retourne un numéro entre 1 et 3 correspondant au mois dans le trimestre pour l'expression de date spécifiée. |
|
NOW |
|
Retourne l'horodatage courant. La fonction |
|
QUARTER_OF_YEAR |
|
Retourne un numéro entre 1 et 4 correspondant au trimestre dans l'année pour l'expression de date spécifiée. |
|
SECOND |
|
Retourne le nombre de secondes entre 0 et 59 pour l'expression d'heure spécifiée. |
|
TIMESTAMPADD |
|
Ajoute le nombre spécifié d'intervalles à l'horodatage indiqué et retourne un horodatage unique. Les options d'intervalle sont les suivantes : SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR |
|
TIMESTAMPDIFF |
|
Retourne le nombre total d'intervalles spécifiés entre deux horodatages. Utilisez les mêmes intervalles que ceux de TIMESTAMPADD. |
|
WEEK_OF_QUARTER |
|
Retourne un numéro entre 1 et 13 correspondant à la semaine dans le trimestre pour l'expression de date spécifiée. |
|
WEEK_OF_YEAR |
|
Retourne un numéro entre 1 et 53 correspondant à la semaine dans l'année pour l'expression de date spécifiée. |
|
YEAR |
|
Retourne l'année pour l'expression de date spécifiée. |
|
Les conseils ci-après vous aideront à optimiser l'utilisation des fonctions de date dans vos classeurs pour le calcul des périodes fiscales, la conversion de chaînes en dates, l'affichage d'une date/heure dans un fuseau horaire spécifique et le calcul des écarts sur une période.
Calculer l'exercice financier, le trimestre et le mois d'exercice :
Les domaines possèdent généralement une dimension temporelle, ce qui permet d'utiliser les périodes préconfigurées telles que le trimestre, le mois et la semaine d'exercice. Avec seulement un champ de date, vous pouvez calculer ces périodes vous-même à l'aide de fonctions de date.
Cet exemple calcule le trimestre d'exercice :
'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)
Cet exemple calcule l'exercice financier et le mois d'exercice :
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)
Notes :
||
concatène les valeurs.cast (xxx(date) as char)
extrait une partie d'un champ de date.TIMESTAMPADD
ajoute des périodes à une date (ou les soustrait). Cet exemple utilise la valeur de paramètre SQL_TSI_MONTH pour ajouter des mois.Les calculs ci-dessus fonctionnent bien dans les tableaux mais, lorsqu'ils sont utilisés dans des filtres, l'espacement entre les valeurs retournées peut sembler incorrect. Si tel est le cas, utilisez un calcul plus précis, mais plus complexe, basé sur les exemples suivants :
'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')
Convertir une chaîne en date :
Dans la zone de texte contenant le nom de la 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 )
, puis cliquez sur Ajouter une étape.
.png
Lorsque vous utilisez l'option Modifier pour créer la fonction de conversion de date, vous pouvez également utiliser Allow_Variable_Digits
pour traiter les valeurs de colonne à un ou deux chiffres, ainsi que des arguments Null_On_Error
pour supprimer les rangées ne correspondant pas au modèle voulu. Voir également REPLACE et CAST pour découvrir d'autres moyens de traiter les données qui ne correspondent pas au modèle voulu.
Au lieu de To_DateTime()
, vous pouvez utiliser CAST() pour modifier le type de données d'une valeur. Par exemple, CAST(SalesDate AS DATE)
.
Utilisez également l'option Remplacer. Dans le concepteur de classeur, à partir du panneau de données, naviguez jusqu'à la colonne à convertir, puis cliquez dessus avec le bouton droit de la souris et sélectionnez Remplacer. Configurez le type de remplacement voulu, puis cliquez sur Ajouter une étape.
Afficher un champ de date/heure dans un fuseau horaire spécifique :
Utilisez la fonction NEW_TIME de 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 de temps.
Calculer l'écart sur une période :
filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage
Notes :
SQL_TSI_DAY
, mais vous pouvez également utiliser WEEK et MONTH d'une semaine à l'autre et d'un mois à l'autre.