Utilisation de DateHeures dans les expressions

Il est possible d'utiliser des expressions pour effectuer des calculs avec des dates, des DateHeures et des heures :

  • Calculer le nombre de jours écoulés, les jours et heures écoulés ou le temps écoulé

    Par exemple, `20141231` - `20141130` renvoie 31, le nombre de jours entre les deux dates.

  • Apporter des ajustements positifs ou négatifs à des dates, à des DateHeures ou à des heures

    Par exemple, `20141231` - 15 renvoie 16 déc 2014, la date 15 jours plus tôt.

  • Comparer des dates, des DateHeures ou des heures

    Par exemple, `20141231 183000` > `20141231 171500` renvoie T (True, vrai), car la première DateHeure est plus récente que la deuxième.

Fonctions de date et d'heure

Pour vous aider à utiliser les données DateHeure, Analytics fournit un certain nombre de fonctions date et heure qui effectuent diverses tâches utiles. Vous pouvez utiliser ces fonctions lorsque vous construisez des expressions DateHeure.

Les fonctions DateHeure, regroupées par tâche, s'affichent dans la table suivante. Vous pouvez voir la même liste de fonctions si vous filtrez la liste déroulante Fonctions dans le Générateur d'expression par Date et heure.

Tâche effectuée

Fonctions

Renvoie le nombre de jours écoulés (l'antériorité) entre une date et une date limite ou la date actuelle ou bien le nombre de jours écoulés entre deux dates.

AGE( )

Calcule une date, ou une fin de mois, un nombre spécifié de mois avant ou après une date

GOMONTH( ), EOMONTH( )

Identifie le jour de la semaine, ou le mois de l'année, correspondant à une date

CDOW( ), CMOY( )

Renvoie une valeur numérique (1 à 7) représentant le jour de la semaine d'une date

DOW( )

Extrait la date ou l'heure d'une valeur DateHeure

DATE( ), TIME( )

Extrait le jour, le mois, l'année, l'heure, les minutes ou les secondes d'une valeur DateHeure

DAY( ), MONTH( ), YEAR( ), HOUR( ), MINUTE( ), SECOND( )

Convertit des valeurs DateHeure sérielles, ou des valeurs DateHeure caractères ou numériques, en valeurs DateHeure ordinaires avec un type de données DateHeure

STOD( ), STODT( ), STOT( ), CTOD( ), CTODT( ), CTOT( )

Renvoie la date, DateHeure ou heure du système d'exploitation en cours d'utilisation

TODAY( ), DATETIME( ), NOW( )

Une quantité d'heures par rapport à un moment dans le temps

À mesure que vous utilisez les DateHeure dans les expressions, il est important de faire la différence entre les quantités d'heures et les moments dans le temps, puisque cette différence vous demande de construire différents types d'expressions.

Heures

La valeur heure 08:30:00 peut renvoyer à une quantité d'heures – 8 heures et 30 minutes – ou à un moment dans le temps – 08:30:00 AM le matin.

Remarque

Le Format d'affichage de l'heure (Outils > Options > Date et heure) dans le premier exemple est hh:mm:ss et dans le deuxième exemple c'est hh:mm:ss PM. Les deux exemples incluent des calculs de DateHeure sériels, qui sont expliqués dans les sections suivantes.

Quantité d'heure

Si vous soustrayez une heure d'une autre heure, le résultat en est une heure écoulée, ce qui est une quantité d'heures.

Renvoie 01:15:00 (1 heure, 15 minutes, 0 seconde) :

STOT(`T083000` - `T071500`)

Moment dans le temps

Si vous ajoutez un nombre à une heure ou si vous soustrayez un nombre d'une heure, le résultat en est un ajustement positif ou négatif qui crée un autre moment dans le temps, soit postérieur soit antérieur à l'heure initiale.

Renvoie 07:00:00 AM :

`T083000` - (1.00000000/24*1,5)

Dates

Quantité d'heure

Si vous soustrayez une date d'une autre date, le résultat en est un nombre écoulé de jours, qui est une quantité d'heures.

Renvoie 31 , le nombre de jours entre les deux dates :

`20141231` - `20141130`

Moment dans le temps

Si vous ajoutez un nombre à une date ou si vous soustrayez un nombre d'une date, le résultat en est un autre moment dans le temps, soit postérieur soit antérieur à la date initiale.

Renvoie 30 nov 2014 , la date 31 jours plus tôt :

`20141231` - 31

Expressions DateHeure valides et non valides

Les expressions DateHeure comprennent un certain nombre de combinaisons possibles de sous-type DateHeure (date, DateHeure et heure) et d'opérateur. Les combinaisons ne sont pas toutes valides. Par exemple, il est possible de soustraire une date à une autre pour trouver le nombre de jours écoulés, mais il est impossible d'ajouter deux dates, car l'opération est illogique. Vous pouvez, toutefois, ajouter un nombre à une date pour générer une date ultérieure.

Les règles suivantes s'appliquent aux expressions de type DateHeure :

  • Soustraire ou comparer des DateHeures N'importe quelle combinaison de valeurs date, DateHeure ou heure peut être utilisée dans une opération de soustraction ou de comparaison.

  • Ajouter ou soustraire des nombres et des DateHeures Les nombres entiers, les nombres mixtes et les nombres fractionnels peuvent être soustraits ou ajoutés à des valeurs date, DateHeure ou heure.

  • Ajouter des DateHeures Les valeurs date, DateHeure ou heure ne peuvent pas s'ajouter entre elles.

    Si vous devez ajouter des quantités d'heures, comme le nombre d'heures travaillées dans une semaine, vous pouvez utiliser les fonctions Analytics pour extraire les portions heure, minutes et secondes de l'heure sous forme de valeur numérique. Vous pouvez ensuite effectuer des calculs sur ces valeurs numériques. Pour plus d'informations, consultez la section Utilisation des fonctions pour ajouter des quantités d'heures.

  • Comparer des DateHeures et des nombres Les valeurs date, DateHeure ou heure ne peuvent pas être comparées à des nombres.

Le tableau suivant résume les combinaisons possibles avec les expressions DateHeure et indique si chaque combinaison est valide ou non, autrement dit, si elle peut être traitée par Analytics.

Remarque

Même si une expression est valide, il se peut qu'elle ne desserve pas toujours un objectif analytique utile. Par exemple, Analytics traitera l'expression Date_fin > Heure_début, mais le résultat est toujours True, ou vrai, (T) et comparer une date à une heure n'a aucun objectif logique.

 

Valeur date

Valeur DateHeure

Valeur heure

Nombre

Valeur date

Valide :

Soustraire

Comparer

Valide :

Soustraire

Comparer

Valide :

Soustraire

Comparer

Valide :

Soustraire

Ajouter

Invalide :

Ajouter

Invalide :

Ajouter

Invalide :

Ajouter

Invalide :

Comparer

Valeur DateHeure

Valide :

Soustraire

Comparer

Valide :

Soustraire

Comparer

Valide :

Soustraire

Comparer

Valide :

Soustraire

Ajouter

Invalide :

Ajouter

Invalide :

Ajouter

Invalide :

Ajouter

Invalide :

Comparer

Valeur heure

Valide :

Soustraire

Comparer

Valide :

Soustraire

Comparer

Valide :

Soustraire

Comparer

Valide :

Soustraire

Ajouter

Invalide :

Ajouter

Invalide :

Ajouter

Invalide :

Ajouter

Invalide :

Comparer

Types de données renvoyés par des expressions DateHeure

Le type de données du résultat renvoyé par une expression DateHeure dépend des valeurs et de l'opérateur dans l'expression :

Expression DateHeure

Type de données de résultat

Soustraction (valeurs DateHeure uniquement)

N'importe quelle combinaison de valeurs date, DateHeure ou heure utilisée dans une opération de soustraction

Numérique

Date sérielle, DateHeure sérielle ou heure sérielle

Pour plus d'informations, consultez la section DateHeures sérielles.

Addition ou soustraction (valeurs DateHeure et nombres)

Un nombre entier, un nombre mixte ou un nombre fractionnel peut être soustrait ou ajouté à une valeur date, DateHeure ou heure.

DateHeure

Sous-type date, DateHeure ou heure du type de données DateHeure

Comparaison (valeurs DateHeure uniquement)

N'importe quelle combinaison de valeurs date, DateHeure ou heure utilisée dans une opération de comparaison

Logique

T (True, vrai) ou F (False, faux)

Format des valeurs littérales DateHeure

  • Valeurs DateHeure : vous pouvez utiliser n'importe laquelle des combinaisons de formats de date, de séparateur et d'heure répertoriées dans le tableau ci-dessous

    La date doit précéder l'heure, et vous devez utiliser un séparateur entre les deux. Les séparateurs valides sont un espace unique, la lettre « t » ou la lettre « T ».

  • Valeurs heure vous devez indiquer les heures à l'aide de l'horloge de 24 heures

    Les décalages par rapport à l'heure universelle coordonnée (UTC) doivent être préfacés d'un signe plus (+) ou d'un signe moins (-).

    Exemples de format

    Exemples de valeurs littérales

    AAAAMMJJ

    `20141231`

    AAMMJJ

    `141231`

    AAAAMMJJ hhmmss

    `20141231 235959`

    AAMMJJthhmm

    `141231t2359`

    AAAAMMJJThh

    `20141231T23`

    AAAAMMJJ hhmmss+/-hhmm

    (décalage UTC)

    `20141231 235959-0500`

    AAMMJJ hhmm+/-hh

    (décalage UTC)

    `141231 2359+01`

    thhmmss

    `t235959`

    Thhmm

    `T2359`

    Remarque

    N'utilisez pas hh seul dans le format d'heure principal avec des données qui ont un décalage UTC. Par exemple, évitez : hh+hhmm. Il se peut que les résultats ne soient pas fiables.

     

Utilisation des fonctions pour ajouter des quantités d'heures

Analytics ne permet pas d'ajouter directement des valeurs de type heure à une autre. Il est toutefois possible d'utiliser les fonctions Analytics pour extraire les portions heure, minutes et secondes des heures sous forme de valeurs numériques pour effectuer ensuite des calculs sur ces dernières.

L'exemple fourni par les données de la feuille de temps ci-dessous illustre cette méthode avec les heures et les minutes.

Plusieurs champs calculés sont requis pour effectuer ces calculs :

Nom du champ calculé

Expression

Description

Écoulé

STOT(Heure_fin - Heure_début)

Opération de soustraction qui calcule le nombre d'heures travaillées dans la journée. La fonction STOT( ) convertit les résultats exprimés en valeurs heure sérielle en résultats exprimés en valeurs heure ordinaire.

Heures

HOUR(Écoulé)

Portion d'heure extraite sous forme de valeur numérique à partir de la valeur Écoulé.

Minutes

MINUTE(Écoulé)

Portion minutes extraite sous forme de valeur numérique à partir de la valeur Écoulé.

(À des fins d'affichage. Non requis pour le calcul.)

Heures partielles

MINUTE(Écoulé)/60,000

La portion minutes extraite sous forme de valeur numérique à partir de la valeur Écoulé et calculée sous forme de portion fractionnelle décimale de 60 minutes.

Heures+Heures partielles

Heures + Heures_partielles

Somme des heures numériques et des heures partielles.

À la fin, vous pouvez effectuer le total du champ Heures+Heures partielles pour calculer le nombre total d'heures pour la semaine :

Apporter des ajustements positifs ou négatifs à des dates, à des DateHeures ou à des heures

Vous pouvez apporter un ajustement positif ou négatif à des valeurs date, DateHeure ou heure, par exemple, en ajoutant ou en soustrayant 15 jours ou bien en ajoutant ou en soustrayant 3 heures.

Apporter un ajustement positif ou négatif à une date

Apporter un ajustement positif ou négatif à une date est une opération simple. Vous ajoutez ou soustrayez le nombre de jours requis pour calculer une date à partir d'une autre.

Renvoie 15 jan 2015 :

`20141231` + 15

Renvoie 16 déc 2014 :

`20141231` - 15

Apporter un ajustement positif ou négatif à une DateHeure ou à une heure

Apporter un ajustement positif ou négatif à une valeur DateHeure ou heure est une opération un peu plus complexe qu’apporter un ajustement à une date.

Vous ne pouvez pas ajouter directement une valeur heure à une autre ni une valeur heure à une valeur DateHeure. Par exemple, si vous tentez de procéder à un ajustement positif de 3 heures à l'aide de l'une des deux expressions suivantes, vous allez obtenir une erreur.

Renvoie l'erreur Non-concordance des types d'expression :

`t120000` + `t030000`

Renvoie l'erreur Non-concordance des types d'expression :

`20141231 235959` + `t030000`

Apporter un ajustement positif à l'aide de l'équivalent correspondant en heure sérielle

Vous pouvez créer une expression valide en ajoutant l'équivalent de 3 heures (0,125) en heure sérielle, mais la création manuelle de ce type d'expressions peut être difficile, car vous devez connaître l'équivalent correspondant en heure sérielle :

Renvoie 15:00:00 :

`t120000` + 0,125

Renvoie 01 Jan 2015 02:59:59 :

`20141231 235959` + 0.125

Apporter un ajustement négatif avec un résultat en DateHeure ou heure sérielle

Apporter un ajustement négatif à une valeur heure ou DateHeure est une opération plus simple. Toutefois, le résultat est une valeur DateHeure sérielle ou une valeur heure sérielle devant être convertie en valeur DateHeure ou heure ordinaire pour pouvoir être lisible pour l'homme :

Renvoie 0.37500000000000 :

`t120000` - `t030000`

Renvoie 09:00:00 :

STOT(`t120000` - `t030000`)

Créer un champ calculé pour apporter plus facilement des ajustements positifs ou négatifs

La méthode suivante vous permet d'apporter plus facilement des ajustements positifs ou négatifs à des valeurs heure ou DateHeure :

  1. Créez un champ calculé déterminant l'équivalent en heure sérielle de la quantité d'heures que vous souhaitez ajouter ou soustraire.

    Renvoie 0,10416668 , l'équivalent correspondant à 2-1/2 heures en heure sérielle :

    (1,00000000/24*2,5)

    Vous devez faire suivre le chiffre « 1 » de plusieurs zéros dans la partie décimale pour vous assurer qu'Analytics n'arrondit pas le résultat.

    Vous pouvez modifier le nombre par lequel vous multipliez pour obtenir un nombre d'heures approprié : (1,00000000/24*1) , (1,00000000/24*8) , (1,00000000/24*10,25) , etc.

  2. Dans le même champ calculé, ajoutez ou soustrayez l'heure sérielle calculée à la valeur heure ou DateHeure source.

    Renvoie des valeurs dans le champ + 2-1/2 heures :

    <champ heure ou DateHeure> + (1,00000000/24*2,5)
  3. Pour ajouter ou soustraire des jours et des heures à une valeur DateHeure, incluez un nombre de jours approprié au calcul.

    Renvoie des valeurs dans le champ + 2 jours et 2-1/2 heures :

    <champ DateHeure> + 2 + (1,00000000/24*2,5)

Exemples d'expressions DateHeure

Les tableaux suivants donnent des exemples d'expressions DateHeure valides :

Remarque

Dans un certain nombre d'exemples, les résultats sont renvoyés sous forme de DateHeures sérielles, c'est-à-dire une valeur date, DateHeure ou heure représentée sous forme d'entier ou de portion fractionnelle décimale de 24 heures.

Vous pouvez utiliser les fonctions STOD( ), STODT( ) et STOT( ) pour convertir les résultats de DateHeure sérielles en valeurs DateHeure ordinaires. Pour plus d'informations, consultez la section DateHeures sérielles.

Calculer le nombre de jours écoulés, les jours et durée écoulés ou la durée écoulée

Expression

Résultat

`20141231` - `20141130`

31

Nombre de jours écoulés entre les deux dates

Date_fin - Date_début

Nombre de jours écoulés entre les valeurs Date_fin et Date_début

`20141231 235959` - `20141130 114530`

31,51005787037037

Nombre de jours et d'heures écoulés entre les deux DateHeures, exprimé sous forme d'heure sérielle

STRING(INT(`20141231 235959` - `20141130 114530`) ;5) + " " + TIME(STOT(MOD(`20141231 235959` - `20141130 114530` ; 1)))

31 12:14:29

Nombre de jours et d'heures écoulés entre les deux DateHeures dans l'exemple ci-dessus, exprimé sous forme de jours, d'heures, de minutes et de secondes

Suppose un format d'affichage de l'heure actuelle d'Analytics au format hh:mm:ss

(`20141231 235959` - `20141130 114530`) * 24

756,24138888888888

Nombre d'heures écoulées entre les deux DateHeures dans l'exemple ci-dessus, exprimé sous forme d'heures et de partie d'une heure en fraction décimale

DateHeure_fin - DateHeure_début

Nombre de jours et d'heures écoulés entre les valeurs DateHeure_fin et DateHeure_début, exprimé sous forme d'heure sérielle

STRING(INT(DateHeure_fin - DateHeure_début) ; 5) + " " + TIME(STOT(MOD(DateHeure_fin - DateHeure_début ; 1)))

Nombre de jours et d'heures écoulés entre les valeurs DateHeure_fin et DateHeure_début, exprimé sous forme de jours, heures, minutes et secondes

`T235959` - `T114530`

0,51005787037037

Durée écoulée entre les deux heures, exprimée sous forme d'heure sérielle

STOT(0,51005787037037)

12:14:29

Heure sérielle de l'exemple précédent convertie en une valeur de type heure, à l'aide du format d'affichage de l'heure actuel dans Analytics

STOT(`T235959` - `T114530`)

12:14:29

Durée écoulée entre les deux heures, exprimée sous forme d'heure à l'aide du format d'affichage de l'heure actuel dans Analytics

Heure_fin - Heure_début

Durée écoulée entre les valeurs Heure_fin et Heure_début, exprimée sous forme d'heure sérielle

Apporter des ajustements positifs ou négatifs à des dates, à des DateHeures ou à des heures

Expression

Résultat

Date_échéance + 15

Valeurs du champ Date_échéance augmentées de 15 jours

`20141231` - 15

16 déc 2014

La date diminuée de 15 jours. Suppose un format d'affichage de la date Analytics actuelle correspondant à JJ MMM AAAA

`20141231 235959` + (1,00000000/24*1,5)

01 jan 2015 01:29:59

DateHeure plus 1,5 heure

`20141231 235959` - (1,00000000/24*1,5)

31 déc 2014 22:29:59

DateHeure moins 1,5 heure

STODT(`20141231 235959` - `T013000`)

31 déc 2014 22:29:59

DateHeure moins 1,5 heure

`20141231 235959` + 2 + (1,00000000/24*1,5)

03 jan 2015 01:29:59

DateHeure plus 2 jours et 1,5 heure

`20141231 235959` - 2 - (1,00000000/24*1,5)

29 déc 2014 22:29:59

DateHeure moins 2 jours et 1,5 heure

`t235959` + (1,00000000/24*1,5)

01:29:59

Heure plus 1,5 heure

`T173000` - (1,00000000/24*1,5)

16:00:00

Heure moins 1,5 heure

STOT(`T173000` - `T013000`)

16:00:00

Heure moins 1,5 heure

STOT(STOT(`T173000` - `T013000`) - `T010000`)

15:00:00

Heure moins 1,5 heure, moins encore une heure

Comparer des dates, des DateHeures ou des heures

Expression

Résultat

`20141231` > `20141230`

T (True, vrai)

Date_échéance <= `20141231`

Toutes les valeurs du champ Date_échéance le ou avant le 31 déc. 2014

Date_paiement > Date_échéance

Toutes les valeurs du champ Date_paiement ayant dépassé la date d'échéance

CTOD(DATE(Paiement_horodatage ; "YYYYMMDD") ; "YYYYMMDD") > Date_échéance

Toutes les valeurs du champ Paiement_horodatage ayant dépassé la date d'échéance

Pour comparer des valeurs DateHeure et date, la date est d'abord extraite en tant que valeur caractère à partir des valeurs DateHeure dans le champ Paiement_horodatage, puis reconvertie en une valeur date pour être comparée à la date d'échéance.

Pour veiller à ce que les formats de date correspondent, des formats identiques sont spécifiés pour le paramètre format DATE( ) (format de sortie) et le paramètre format CTOD( ) (format d'entrée).

Heure_connexion > `t100000`

Toutes les valeurs du champ Heure_connexion supérieure à 10:00:00

Expressions DateHeure utilisant des fonctions de conversion

Expression

Résultat

STOT(CTOT("t120000") - CTOT("t090000") )

03:00:00

Durée écoulée entre les deux valeurs heure caractères

Les valeurs heure caractères sont d'abord converties en valeurs heure ordinaires pour pouvoir être utilisées dans une opération de soustraction. L'heure sérielle numérique apparaissant suite à l'opération de soustraction est ensuite convertie en valeur heure ordinaire.

CTOT(TIME(`20141231 125959`)) < `T235959`

T (True, vrai)

L'heure est tout d'abord extraite sous forme de valeur de type caractère à partir de la valeur DateHeure, puis reconvertie en une valeur de type heure pour être comparée à 23:59:59.