Datumsüberprüfung Oracle

Hallo,

kennt jamand eine funktion zum prüfen auf korrektes datum?

Muß per SQL-Select realisierbar sein!

In etwa:

select decode(date_current(to_date(DATUM)),0,sysdate, to_date(DATUM)) from …

Vielen Dank füe eure Hilfe!

Hallo,
warum deklarierst du nicht das Feld als Date.
Soweit mir bekannt dürfen dann nur gültige Datum eingefügt werden.

In welcher Form wird den das Datum angeliefert?

Grüße
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

ich bekomme das Datum leider nur alt Teilstring
bsp.: 11010022004 = 110 10.02.2004
11214032004 = 112 14.03.2004

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wenn du weißt das immer 3 Stellen vor dem Datum kommen könntest du die ja „wegschneiden“

so z.B.
select substr(‚11214032004‘,1,3) zahlen, to_Date(substr(‚11214032004‘,4),‚ddmmYYYY‘) Datum from dual

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Benutzt doch eine selber geschriebene Funktion (s.u.). Die liefert dann 1 zurück, wenns ein Datum ist, sonst 0.


CREATE OR REPLACE FUNCTION is_date
( datumstring IN VARCHAR2
, formatstring IN VARCHAR2 DEFAULT ‚dd.mm.yyyy‘)
RETURN NUMBER
IS
temp_datum DATE;
BEGIN
temp_datum := to_date(datumstring, formatstring);

RETURN 1;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

soweit ist mir das auch klar!

was mach ich aber wenn in dem Feld aus versehen 11030022004 steht!
Länge ist OK
Erste 3 Stellen weg bleibt 30.02.2004 und dass ist mein Problem!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen dank,

dass mit der Funktion klappt super!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]