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

TO_DATE

TO_DATE

Convertit une chaîne de caractères en type de donnée Date/Heure. Utilisez des chaînes de format TO_DATE pour spécifier le format des chaînes source.
Le port de sortie doit être Date/Heure pour des expressions TO_DATE.
Si vous convertissez des années à deux chiffres à l'aide de TO_DATE, utilisez la chaîne de format RR ou YY. N'utilisez pas la chaîne de format YYYY.

Syntaxe

TO_DATE(
string
[,
format
] )
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/
Facultatif
Description
chaîne
Obligatoire
Doit être un type de données String. Transmet les valeurs que vous voulez convertir en dates. Vous pouvez entrer l'expression de transformation valide de votre choix.
format
Facultatif
Entrez une chaîne de format TO_DATE valide. La chaîne de format doit correspondre aux parties de l'argument
chaîne
. Par exemple, si vous passez la chaîne 'Mar 15 1998 12:43:10AM', vous devez utiliser la chaîne de format 'MON DD YYYY HH12:MI:SSAM'. Si vous omettez la chaîne de format, la valeur de chaîne doit être dans le format de date spécifié dans la session.

Valeur de retour

Date.
TO_DATE renvoie toujours une date et une heure. Si vous transmettez une chaîne qui n'a pas de valeur d'heure, la date renvoyée inclura toujours l'heure 00:00:00.000000000. Vous pouvez mapper les résultats de cette fonction vers une colonne cible de votre choix avec un type de données Date/Heure. Si la précision de la colonne cible est inférieure aux nanosecondes, le
Service d'intégration de données
tronque la valeur date/heure pour faire correspondre la précision de la colonne cible lors de l'écriture des valeurs de date/heure dans la cible.
NULL si vous transmettez une valeur nulle à cette fonction.
Le format de la chaîne TO_DATE doit correspondre à la chaîne de format, y compris les séparateurs de date. Si ce n'est pas le cas, le
Service d'intégration de données
peut renvoyer des valeurs non précises ou ignorer l'enregistrement.

Exemples

L'expression suivante renvoie des valeurs date pour les chaînes dans le port DATE_PROMISED. TO_DATE renvoie toujours une date et une heure. Si vous transmettez une chaîne qui n'a pas de valeur d'heure, la date renvoyée inclura toujours l'heure 00:00:00.000000000. Si vous exécutez un mappage au vingtième siècle, il s'agira du 19e siècle. Dans cet exemple, l'année en cours sur le nœud exécutant le
Service d'intégration de données
est 1998. Le format date/heure pour la colonne cible est MON DD YY HH24:MI SS ; le
Service d'intégration de données
tronque donc la valeur date/heure en secondes lors de l'écriture dans la cible :
TO_DATE( DATE_PROMISED, 'MM/DD/YY' )
DATE_PROMISED
RETURN VALUE
'01/22/98'
Jan 22 1998 00:00:00
'05/03/98'
May 3 1998 00:00:00
'11/10/98'
Nov 10 1998 00:00:00
'10/19/98'
Oct 19 1998 00:00:00
NULL
NULL
L'expression suivante renvoie les valeurs de date et heure pour les chaînes dans le port DATE_PROMISED. Si vous transmettez une chaîne qui n'a pas de valeur d'heure, le
Service d'intégration de données
renvoie une erreur. Si vous exécutez un mappage au vingtième siècle, il s'agira du 19e siècle. L'année en cours sur le nœud exécutant le
Service d'intégration de données
est 1998 :
TO_DATE( DATE_PROMISED, 'MON DD YYYY HH12:MI:SSAM' )
DATE_PROMISED
RETURN VALUE
'Jan 22 1998 02:14:56PM'
Jan 22 1998 02:14:56PM
'Mar 15 1998 11:11:11AM'
Mar 15 1998 11:11:11AM
'Jun 18 1998 10:10:10PM'
Jun 18 1998 10:10:10PM
'October 19 1998'
Error. Integration Service skips this row.
NULL
NULL
L'expression suivante convertit les chaînes dans le port SHIP_DATE_MJD_STRING en valeurs de date :
TO_DATE (SHIP_DATE_MJD_STR, 'J')
SHIP_DATE_MJD_STR
RETURN_VALUE
'2451544'
Dec 31 1999 00:00:00.000000000
'2415021'
Jan 1 1900 00:00:00.000000000
La chaîne de format J ne contenant pas la portion d'heure d'une date, l'heure des valeurs de retour est définie à 00:00:00.000000000.
L'expression suivante convertit une chaîne en un format d'année à quatre chiffres. L'année en cours est 1998 :
TO_DATE( DATE_STR, 'MM/DD/RR')
DATE_STR
RETURN VALUE
'04/01/98'
04/01/1998 00:00:00.000000000
'08/17/05'
08/17/2005 00:00:00.000000000
L'expression suivante convertit une chaîne en un format d'année à quatre chiffres. L'année en cours est 1998 :
TO_DATE( DATE_STR, 'MM/DD/YY')
DATE_STR
RETURN VALUE
'04/01/98'
04/01/1998 00:00:00.000000000
'08/17/05'
08/17/1905 00:00:00.000000000
Pour la deuxième ligne, RR renvoie l'année 2005 et YY renvoie l'année 1905.
L'expression suivante convertit une chaîne en un format d'année à quatre chiffres. L'année en cours est 1998 :
TO_DATE( DATE_STR, 'MM/DD/Y')
DATE_STR
RETURN VALUE
'04/01/8'
04/01/1998 00:00:00.000000000
'08/17/5'
08/17/1995 00:00:00.000000000
L'expression suivante convertit une chaîne en un format d'année à quatre chiffres. L'année en cours est 1998 :
TO_DATE( DATE_STR, 'MM/DD/YYY')
DATE_STR
RETURN VALUE
'04/01/998'
04/01/1998 00:00:00.000000000
'08/17/995'
08/17/1995 00:00:00.000000000
L'expression suivante convertit les chaînes comprenant les secondes à partir de minuit en valeurs de date :
TO_DATE( DATE_STR, 'MM/DD/YYYY SSSSS')
DATE_STR
RETURN_VALUE
'12/31/1999 3783'
12/31/1999 01:02:03
'09/15/1996 86399'
09/15/1996 23:59:59
Si la cible accepte différents formats de date, utilisez TO_DATE et IS_DATE avec la fonction DECODE pour évaluer les formats acceptables. Par exemple :
DECODE( TRUE,  --test first format    IS_DATE( CLOSE_DATE,'MM/DD/YYYY HH24:MI:SS' ),  --if true, convert to date       TO_DATE( CLOSE_DATE,'MM/DD/YYYY HH24:MI:SS' ),  --test second format; if true, convert to date    IS_DATE( CLOSE_DATE,'MM/DD/YYYY'), TO_DATE( CLOSE_DATE,'MM/DD/YYYY' ),  --test third format; if true, convert to date    IS_DATE( CLOSE_DATE,'MON DD YYYY'), TO_DATE( CLOSE_DATE,'MON DD YYYY'),  --if none of the above    ERROR( 'NOT A VALID DATE') )
Vous pouvez associer TO_CHAR et TO_DATE pour convertir une valeur numérique pour un mois en valeur de texte pour un mois à l'aide d'une fonction telle que la suivante :
TO_CHAR( TO_DATE( numeric_month, 'MM' ), 'MONTH' )