[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    119

    Question fehlerhaftes Datumsfeld in SQL finden

    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

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    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

    Zitat Zitat von rebe
    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
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von rebe
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. Numm Feld nach DatumsFeld in SQL
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 27-04-05, 15:36

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •