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

IS_DATE

IS_DATE

Gibt zurück, ob ein Stringwert ein gültiges Datum ist. Ein gültiges Datum ist jeder String in der Datumskomponente des Datum/Zeit-Formats, das in der Sitzung festgelegt wurde. Wenn der String, den Sie testen möchten, nicht in diesem Datumsformat vorliegt, verwenden Sie den Formatstring TO_DATE zum Festlegen des Datumsformats. Wenn die an IS_DATE übergebenen Strings nicht mit dem angegebenen Formatstring übereinstimmen, gibt die Funktion FALSE (0) zurück. Wenn die Strings mit dem angegebenen Formatstring übereinstimmen, gibt die Funktion TRUE (1) zurück.
IS_DATE wertet Strings aus und gibt einen Ganzzahlwert zurück.
Der Ausgabeport für einen IS_DATE-Ausdruck muss einen String- oder numerischen Datentyp aufweisen.
Mit IS_DATE können Sie Daten in einer Einfachdatei testen oder filtern, bevor sie in ein Ziel geschrieben werden.
Mit IS_DATE sollten Sie den RR-Formatstring und nicht YY verwenden. In vielen Fällen führen beiden Formatstrings zu gleichen Werten, aber es gibt einige Situationen, in denen YY inkorrekte Ergebnisse ergibt. Beispiel: Der Ausdruck IS_DATE(‘02/29/00’, ‘YY’) wird intern als IS_DATE(02/29/1900 00:00:00) interpretiert, was mit FALSE ausgewertet wird.
Data Integration Service
interpretiert IS_DATE(‘02/29/00’, ‘RR’) hingegen als IS_DATE(02/29/2000 00:00:00) und gibt TRUE zurück. 1900 war kein Schaltjahr – es gab also keinen 29. Februar.
Für IS_DATE gelten dieselben Formatstrings wie für TO_DATE.

Syntax

IS_DATE(
value
[,
format
] )
In der folgenden Tabelle werden die Argumente für diesen Befehl beschrieben:
Argument
Erforderlich/
Optional
Beschreibung
value
Erforderlich
Muss ein String-Datentyp sein. Übergibt die auszuwertenden Zeilen. 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 1997 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 Mapping-Konfiguration definiert wurde.

Rückgabewert

TRUE (1), wenn die Zeile ein gültiges Datum ist.
FALSE (0), wenn die Zeile kein gültiges Datum ist.
NULL, wenn ein Wert im Ausdruck oder der Formatstring NULL ist.
Das Format des IS_DATE-Strings muss mit dem Formatstring übereinstimmen; dazu gehören auch die Datumstrennzeichen. Andernfalls kann
Data Integration Service
ungenaue Werte zurückgeben oder den Datensatz überspringen.

Beispiele

Der folgende Ausdruck prüft den Port INVOICE_DATE auf gültige Datumsangaben:

IS_DATE( INVOICE_DATE )
Der Ausdruck gibt Datumsangaben wie die folgenden zurück:
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
0 (FALSE)
'04/01/98'
0 (FALSE)
'04/01/1998 00:12:15.7008'
1 (TRUE)
'02/31/1998 12:13:55.9204'
0 (FALSE)   (
February does not have 31 days
)
'John Smith'
0 (FALSE)
Der folgende IS_DATE-Ausdruck spezifiziert den Formatstring YYYY/MM/DD:
IS_DATE( INVOICE_DATE, 'YYYY/MM/DD' )
Wenn der Stringwert nicht mit diesem Format übereinstimmt, gibt IS_DATE FALSE zurück:
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
0 (FALSE)
'04/01/98'
0 (FALSE)
'1998/01/12'
1 (TRUE)
'1998/11/21 00:00:13'
0 (FALSE)
'1998/02/31'
0 (FALSE)   (
February does not have 31 days
)
'John Smith'
0 (FALSE)
Das folgende Beispiel zeigt, wie Sie mithilfe von IS_DATE Daten testen, bevor Sie diese Daten mit TO_DATE in Datumsangaben konvertieren. Dieser Ausdruck prüft die Werte im Port INVOICE_DATE und konvertiert jedes gültige Datum in einen Datumswert. Wenn der Wert kein gültiges Datum ist, gibt
Data Integration Service
einen Fehler zurück und überspringt die Zeile.
Dieses Beispiel gibt einen Datum/Zeit-Wert zurück. Daher muss der Datentyp des Ausgabeports für den Ausdruck Datum/Zeit lauten:
IIF( IS_DATE ( INVOICE_DATE, 'YYYY/MM/DD' ), TO_DATE( INVOICE_DATE ), ERROR('Not a valid date' ) )
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
'Not a valid date'
'04/01/98'
'Not a valid date'
'1998/01/12'
1998/01/12
'1998/11/21 00:00:13'
'Not a valid date'
'1998/02/31'
'Not a valid date'
'John Smith'
'Not a valid date'