PDA

View Full Version : fehlerhaftes Datumsfeld in SQL finden



rebe
19-01-05, 15:53
Hallo!

Habe eine Datei mit mehreren Feldern. Ein Feld ist Format Date. In einigen Sätzen stehen fehlerhafte Daten in diesem Feld. Ich kann die Abfrage "select * from datei where datum > '01.01.05'" nicht machen. Wie kann ich Sätze mit fehlerhaften Daten in dem Datumsfeld finden?
Oder kann ich die fehlerhaften Daten mit einem SQL-Befehl auf einen Standardwert setzen?

Danke für Tipps.

Gruß
Reiner

BenderD
19-01-05, 16:23
Hallo,,

wo Date draufsteht ist auch Date drin! in einem Feld vom Typ Date können keine ungültigen Daten drinstehen, das verhindert die Datenbank schon beim schreiben. Wahrscheinlich ist dein Datumsliteral fehlerhaft, oder du verwendest das falsche Datumsformat im Job.

mfg

Dieter Bender


Hallo!

Habe eine Datei mit mehreren Feldern. Ein Feld ist Format Date. In einigen Sätzen stehen fehlerhafte Daten in diesem Feld. Ich kann die Abfrage "select * from datei where datum > '01.01.05'" nicht machen. Wie kann ich Sätze mit fehlerhaften Daten in dem Datumsfeld finden?
Oder kann ich die fehlerhaften Daten mit einem SQL-Befehl auf einen Standardwert setzen?

Danke für Tipps.

Gruß
Reiner

B.Hauser
19-01-05, 16:42
Hallo!

Habe eine Datei mit mehreren Feldern. Ein Feld ist Format Date. In einigen Sätzen stehen fehlerhafte Daten in diesem Feld. Ich kann die Abfrage "select * from datei where datum > '01.01.05'" nicht machen. Wie kann ich Sätze mit fehlerhaften Daten in dem Datumsfeld finden?
Oder kann ich die fehlerhaften Daten mit einem SQL-Befehl auf einen Standardwert setzen?

Danke für Tipps.

Gruß
Reiner

Das Datum ist in einem Datums-Feld immer als Binär-Wert (Scaliger No) gespeichert und wird dann bei einer Abfrage über das aktuelle Datums-Format aufbereitet.

Bei SQL-Abfragen über eine alphanumerische Angabe wird immer ein 4-stelliges Jahr vorausgesetzt. Auch wenn nur ein 2-stelliges Jahr angezeigt wird.
SQL kann jede der folgenden Datums-Aufbereitungen erkennen und in den entsprechenden Binär-Wert konvertieren:
'2005-01-19', '19.01.2005', '01/19/2005'

Deine Abfrage müsste funktionnieren, wenn das Datum in der Form '01.01.2005' angegeben wird.

Um sicher zugehen, kannst Du auch den String mit der Scalaren Funktion DATE in ein Datum konvertieren. Aber das klappt auch nur, wenn das Jahr 4-stellig angegeben wurde.

Birgitta