Schreib' dir eine kleine SQL-Funktion, die das Datum konvertiert und bei fehlerhaften Datensätzen einen Unterlassungswert (z.B. 0001-01-01 oder 9999-12-31) ausgibt. Diese Funktion verwendest Du dann anstatt das Datum mit CAST zu konvertieren. Anschließend kannst Du die Unterlassungswerte rausfiltern.
Etwa so:
Code:
Create Function YourSchema/CvtChar2Date (ParDate VarChar(10))
Returns DATE
Language SQL
Not Deterministic
Contains SQL
Set Option DBGVIEW = *SOURCE
BEGIN
Declare Continue Handler For SQLSTATE '22007'
Return Date('9999-12-31');
Return Cast(ParDate as Date);
END ;
Aufruf:
Code:
Select CvtChar2Date(YourDatum)
From yourTable;
Birgitta
Bookmarks