Table des matières

Search

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

Référence du langage de transformation

Référence du langage de transformation

SET_DATE_PART

SET_DATE_PART

Définit une partie d'une valeur Date/Heure sur une valeur que vous indiquez. SET_DATE_PART permet de changer les parties suivantes d'une date :
  • Année.
    Modifiez l'année en saisissant un entier positif dans l'argument de
    valeur
    . Utilisez les chaînes de format de l'année : Y, YY, YYY, ou YYYY pour définir l'année. Par exemple, l'expression suivante modifie l'année par 2001 pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'YY', 2001 )
  • Mois.
    Changez le mois en saisissant un entier positif entre 1 et 12 (janvier = 1 et décembre = 12) dans l'argument de
    valeur
    . Utilisez les chaînes de format de mois suivantes : MM, MON, MONTH pour définir le mois. Par exemple, l'expression suivante modifie le mois par octobre pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'MONTH', 10 )
  • Jour.
    Changez le jour en saisissant un nombre entier positif entre 1 et 31 (excepté pour les mois inférieurs à 31 jours : Février, avril, juin, septembre et novembre) dans l'argument de
    valeur
    . Utilisez les chaînes de format de jour (D, DD, DDD, DY et DAY) pour définir le jour. Par exemple, l'expression suivante modifie le jour par 10 pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'DD', 10 )
  • Heure.
    Modifiez l'heure en saisissant un entier positif entre 0 et 24 (où 0 = minuit, 12 = midi et 24 =minuit) dans l'argument de
    valeur
    . Utilisez les chaînes de format d'heure (HH, HH12, HH24) pour définir l'heure. Par exemple, l'expression suivante modifie l'heure par 14:00:00 (ou 2:00:00PM) pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'HH', 14 )
  • Minute.
    Modifiez les minutes en saisissant un entier positif entre 0 et 59 dans l'argument de
    valeur
    . Utilisez la chaîne de format MI pour définir les minutes. Par exemple, l'expression suivante modifie la minute par 25 pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'MI', 25 )
  • Secondes.
    Modifiez les secondes en saisissant un entier positif entre 0 et 59 dans l'argument de
    valeur
    . Utilisez la chaîne de format SS pour définir les secondes. Par exemple, l'expression suivante modifie les secondes par 59 pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'SS', 59 )
  • Millisecondes
    . Modifiez les millisecondes en saisissant un entier positif entre 0 et 999 dans l'argument de
    valeur
    . Utilisez la chaîne de format MS pour définir les millisecondes. Par exemple, l'expression suivante modifie les millisecondes par 125 pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'MS', 125 )
  • Microsecondes.
    Modifiez les microsecondes en saisissant un entier positif entre 1000 et 999999 dans l'argument de
    valeur
    . Utilisez la chaîne de format US pour définir les microsecondes. Par exemple, l'expression suivante modifie les microsecondes par 12555 pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'US', 12555 )
  • Nanosecondes.
    Modifiez les nanosecondes en saisissant un entier positif entre 1000000 et 999999999 dans l'argument de
    valeur
    . Utilisez la chaîne de format NS pour définir les nanosecondes. Par exemple, l'expression suivante modifie les nanosecondes par
    12555555
    pour toutes les dates dans le port SHIP_DATE :
    SET_DATE_PART( SHIP_DATE, 'NS', 12555555 )

Syntaxe

SET_DATE_PART( 
date
,
format
,
value
 )
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/
Facultatif
Description
date
Obligatoire
Type de données Date/Heure. Date à modifier. Vous pouvez entrer l'expression de transformation valide de votre choix.
format
Obligatoire
Chaîne de format spécifiant la partie de la date à modifier. La chaîne de format n'est pas sensible à la casse.
valeur
Obligatoire
Valeur entière positive attribuée à la partie de la date spécifiée. Le nombre entier doit être une valeur valide pour la partie de la date à modifier. Si vous entrez une valeur incorrecte comme le 30 février, la session échouera.

Valeur de retour

Date au même format que la date source contenant la partie spécifiée modifiée.
NULL si une valeur transmise à la fonction est NULL.

Exemples

Les expressions suivantes modifient l'heure par 4PM pour chaque date dans le port DATE_PROMISED :
SET_DATE_PART( DATE_PROMISED, 'HH', 16 ) SET_DATE_PART( DATE_PROMISED, 'HH12', 16 ) SET_DATE_PART( DATE_PROMISED, 'HH24', 16 )
DATE_PROMISED
RETURN VALUE
Jan 1 1997 12:15:56AM
Jan 1 1997 4:15:56PM
Feb 13 1997 2:30:01AM
Feb 13 1997 4:30:01PM
Mar 31 1997 5:10:15PM
Mar 31 1997 4:10:15PM
Dec 12 1997 8:07:33AM
Dec 12 1997 4:07:33PM
NULL
NULL
Les expressions suivantes modifient le mois par juin pour les dates dans le port DATE_PROMISED. Le
Service d'intégration de données
affiche une erreur lorsque vous tentez de créer une date qui n'existe pas, par exemple en modifiant 31 mars par 31 juin :
SET_DATE_PART( DATE_PROMISED, 'MM', 6 ) SET_DATE_PART( DATE_PROMISED, 'MON', 6 ) SET_DATE_PART( DATE_PROMISED, 'MONTH', 6 )
DATE_PROMISED
RETURN VALUE
Jan 1 1997 12:15:56AM
Jun 1 1997 12:15:56AM
Feb 13 1997 2:30:01AM
Jun 13 1997 2:30:01AM
Mar 31 1997 5:10:15PM
Error. Integration Service doesn't write row.
Dec 12 1997 8:07:33AM
Jun 12 1997 8:07:33AM
NULL
NULL
Les expressions suivantes modifient l'année par 2000 pour les dates dans le port DATE_PROMISED :
SET_DATE_PART( DATE_PROMISED, 'Y', 2000 ) SET_DATE_PART( DATE_PROMISED, 'YY', 2000 ) SET_DATE_PART( DATE_PROMISED, 'YYY', 2000 ) SET_DATE_PART( DATE_PROMISED, 'YYYY', 2000 )
DATE_PROMISED
RETURN VALUE
Jan 1 1997 12:15:56AM
Jan 1 2000 12:15:56AM
Feb 13 1997 2:30:01AM
Feb 13 2000 2:30:01AM
Mar 31 1997 5:10:15PM
Mar 31 2000 5:10:15PM
Dec 12 1997 8:07:33AM
Dec 12 2000 4:07:33PM
NULL
NULL

Conseil

Si vous voulez modifier plusieurs parties de date en une seule fois, vous pouvez imbriquer plusieurs fonctions SET_DATE_PART dans l'argument de
date
. Par exemple, vous pouvez écrire l'expression suivante pour mettre toutes les dates dans le port DATE_ENTERED au 1er juillet 1998 :
SET_DATE_PART( SET_DATE_PART( SET_DATE_PART( DATE_ENTERED, 'YYYY', 1998),MM', 7), 'DD', 1)