Inhaltsverzeichnis

Search

  1. Vorwort
  2. Umwandlungssprache
  3. Konstanten
  4. Operatoren
  5. Variablen
  6. Datumsangaben
  7. Funktionen

Referenzhandbuch für die Umwandlungssprache

Referenzhandbuch für die Umwandlungssprache

TO_DATE

TO_DATE

Konvertiert einen Zeichenstring in einen Datum/Zeit-Datentyp. Mit den TO_DATE-Formatstrings geben Sie das Format der Quellstrings an.
Bei TO_DATE-Ausdrücken muss der Ausgabeport den Datum/Zeit-Datentyp aufweisen.
Beim Konvertieren von zweistelligen Jahreszahlen mit TO_DATE verwenden Sie die Formatstrings RR oder YY. Der YYYY-Formatstring ist dazu nicht geeignet.

Syntax

TO_DATE(
string
[,
format
] )
In der folgenden Tabelle werden die Argumente für diesen Befehl beschrieben:
Argument
Erforderlich/
Optional
Beschreibung
string
Erforderlich
Muss ein String-Datentyp sein. Übergibt die Werte, die in Datumsangaben konvertiert werden sollen. Sie können einen beliebigen gültigen Umwandlungausdruck eingeben.
format
Optional
Geben Sie einen gültigen TO_DATE-Formatstring ein. Der Formatstring muss den Teilen des Arguments
string
entsprechen. Beispiel: Beim Übergeben des Strings „Mar 15 1998 12:43:10AM“ müssen Sie den Formatstring DD MON YYYY HH12: MI:SSAM angeben. Wenn Sie den Formatstring auslassen, muss der Stringwert in dem Datumsformat vorliegen, das in der Sitzung definiert wurde.

Rückgabewert

Datum.
TO_DATE gibt immer ein Datum und eine Uhrzeit zurück. Wenn Sie einen String ohne Zeitwert übergeben, gibt das Rückgabedatum die Uhrzeit immer mit 00:00:00.000000000 an. Sie können die Ergebnisse dieser Funktion mit einer Zielspalte des Datetime-Datentyps verknüpfen. Wenn die Präzision der Zielspalte unter Nanosekunden liegt, schneidet
Data Integration Service
den Datetime-Wert beim Schreiben in das Ziel ab, damit er mit der Präzision der Zielspalte übereinstimmt.
NULL, wenn Sie der Funktion einen Nullwert übergeben.
Das Format des TO_DATE-Strings muss mit dem Formatstring übereinstimmen, einschließlich der Trennzeichen für Datumsangaben. Andernfalls kann
Data Integration Service
ungenaue Werte zurückgeben oder den Datensatz überspringen.

Beispiele

Der folgende Ausdruck gibt Datumswerte für die Strings im Port DATE_PROMISED zurück. TO_DATE gibt immer ein Datum und eine Uhrzeit zurück. Wenn Sie einen String ohne Zeitwert übergeben, gibt das Rückgabedatum die Uhrzeit immer mit 00:00:00.000000000 an. Wenn Sie ein Mapping im 20. Jahrhundert ausführen, lautet das Jahrhundert 19. In diesem Beispiel ist das aktuelle Jahr auf dem Knoten, auf dem
Data Integration Service
ausgeführt wird, 1998. Das Datetime-Format der Zielspalte lautet MON DD YY HH24:MI SS, was bedeutet, dass
Data Integration Service
den Datetime-Wert beim Schreiben in das Ziel auf Sekunden beschneidet:
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
Der folgende Ausdruck gibt Datums- und Zeitwerte für die Strings im Port DATE_PROMISED zurück. Wenn Sie einen String ohne Zeitwert übergeben, gibt
Data Integration Service
eine Fehlermeldung aus. Wenn Sie ein Mapping im 20. Jahrhundert ausführen, lautet das Jahrhundert 19. Das aktuelle Jahr auf dem Knoten, auf dem
Data Integration Service
ausgeführt wird, ist 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
Der folgende Ausdruck konvertiert Strings im Port SHIP_DATE_MJD_STRING in Datumswerte:
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
Da der J-Formatstring die Zeitkomponente der Datumsangabe nicht berücksichtigt, wird die Uhrzeit in den Rückgabewerten auf 00: 00: 00.000000000 gesetzt.
Der folgende Ausdruck konvertiert einen String in ein vierstelliges Jahresdatumsformat. Das aktuelle Jahr ist 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
Der folgende Ausdruck konvertiert einen String in ein vierstelliges Jahresdatumsformat. Das aktuelle Jahr ist 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
In der zweiten Zeile gibt RR das Jahr 2005, YY hingegen das Jahr 1905 zurück.
Der folgende Ausdruck konvertiert einen String in ein vierstelliges Jahresdatumsformat. Das aktuelle Jahr ist 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
Der folgende Ausdruck konvertiert einen String in ein vierstelliges Jahresdatumsformat. Das aktuelle Jahr ist 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
Der folgende Ausdruck konvertiert Strings, die eine Angabe der Sekunden seit Mitternacht enthalten, in Datumswerte:
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
Wenn das Ziel unterschiedliche Datumsformate akzeptiert, verwenden Sie TO_DATE und IS_DATE mit der Funktion DECODE zum Ermitteln der zulässigen Formate. Beispiel:
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') )
TO_CHAR und TO_DATE können kombiniert werden, z. B. zum Konvertieren eines numerischen Werts für einen Monat in einen Textwert für einen Monat mithilfe einer Funktion:
TO_CHAR( TO_DATE( numeric_month, 'MM' ), 'MONTH' )