Table des matières

Search

  1. Préface
  2. Le langage de transformation
  3. Constantes
  4. Opérateurs
  5. Variables
  6. Dates
  7. Fonctions

Transformation Language Reference

Transformation Language Reference

DATE_DIFF

DATE_DIFF

Renvoie la durée entre deux dates. Vous pouvez demander à ce que le format soit des années, des mois, des jours, des heures, des minutes, des secondes, des millisecondes, des microsecondes ou des nanosecondes. Le
Service d'intégration de données
soustrait la deuxième date à la première date et renvoie la différence.
Le
Service d'intégration de données
calcule la fonction DATE_DIFF en fonction du nombre de mois au lieu du nombre de jours. Il calcule les différences de date pour les mois incomplets avec les jours sélectionnés dans chaque mois. Pour calculer la différence de date pour le mois incomplet, le
Service d'intégration de données
ajoute les jours utilisés dans le mois. Ensuite, il divise la valeur par le nombre total de jours dans le mois sélectionné.
Le
Service d'intégration de données
indique une valeur différente pour la même période dans une année bissextile et une année non bissextile. La différence se produit lorsque le mois de février est inclus dans la fonction DATE_DIFF. La fonction DATE_DIFF divise les jours par 29 pour le mois de février dans une année bissextile et 28 s'il ne s'agit pas d'une année bissextile.
Par exemple, vous souhaitez calculer le nombre de mois écoulés entre le 13 septembre et le 19 février. Dans une période d'année bissextile, la fonction DATE_DIFF calcule le mois de février comme 19/29 mois ou 0,655 mois. Dans une période d'année non bissextile, la fonction DATE_DIFF calcule le mois de février comme 19/28 mois ou 0,678 mois. De la même façon, le
Service d'intégration de données
calcule la différence entre les dates pour les mois restants et la fonction DATE_DIFF renvoie la valeur spécifiée pour la période.
Certaines bases de données peuvent utiliser un algorithme différent pour calculer la différence entre les dates.

Syntaxe

DATE_DIFF(
date1
,
date2
,
format
)
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/
Facultatif
Description
date1
Obligatoire
Type de données Date/Heure. Transmet les valeurs pour la première date à comparer. Vous pouvez entrer l'expression de transformation valide de votre choix.
date2
Obligatoire
Type de données Date/Heure. Transmet les valeurs pour la deuxième date que vous voulez comparer. Vous pouvez entrer l'expression de transformation valide de votre choix.
format
Obligatoire
Chaîne de format spécifiant la mesure de la date ou de l'heure. Vous pouvez spécifier des années, des mois, des jours, des heures, des minutes, des secondes, des millisecondes, des microsecondes ou des nanosecondes. Vous pouvez spécifier uniquement une partie de la date, par exemple 'mm'. Placez les chaînes de format entre guillemets simples. La chaîne de format n'est pas sensible à la casse. Par exemple, la chaîne de format 'mm' est identique à 'MM', 'Mm' ou 'mM'.

Valeur de retour

Valeur Double. Si la
date1
est ultérieure à la
date2
, la valeur de retour sera un nombre positif. Si la
date1
est antérieur à la
date2
, la valeur de retour sera un nombre négatif.
0 si les dates sont identiques.
NULL si une ou les deux valeurs de date sont nulles.

Exemples

Les expressions suivantes renvoient le nombre d'heures entre les ports DATE_PROMISED et DATE_SHIPPED :
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'HH' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'HH12' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'HH24' )
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2100
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2100
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
6812.89166666667
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-8784
Les expressions suivantes renvoient le nombre de jours entre les ports DATE_PROMISED et DATE_SHIPPED :
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'D' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DD' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DDD' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DY' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DAY' )
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-87.5
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
87.5
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
283.870486111111
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-366
Les expressions suivantes renvoient le nombre de mois entre les ports DATE_PROMISED et DATE_SHIPPED :
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MM' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MON' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MONTH' )
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2.91935483870968
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2.91935483870968
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
9.3290162037037
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-12
Les expressions suivantes renvoient le nombre d'années entre les ports DATE_PROMISED et DATE_SHIPPED :
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'Y' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'YY' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'YYY' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'YYYY' )
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-0.24327956989247
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
0.24327956989247
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
0.77741801697531
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-1
Les expressions suivantes renvoient le nombre de mois entre les ports DATE_PROMISED et DATE_SHIPPED :
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MM' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MON' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MONTH' )
DATE_PROMISED
DATE_SHIPPED
LEAP YEAR VALUE (in Months)
NON-LEAP YEAR VALUE (in Months)
Sept 13
Feb 19
-5.237931034
-5.260714286
NULL
Feb 19
NULL
N/A
Sept 13
NULL
NULL
N/A