[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2005
    Beiträge
    232

    Datumsfeld nur bis 2039 ???

    Hallo,

    Wir haben heute festgestellt, das ein Datumsfeld in der Datenbank Datumsangaben nur bis 2039 verarbeiten kann. Das sagt zwar auch die Dokumentation hier
    http://publib.boulder.ibm.com/iserie...h2datetime.htm

    Trotzdem scheint das Datum korrekt abgelegt zu werden. Habe es auf einer Maschine unter V5R2 mit dem fast neuesten PTF Stand ausprobiert. Dazu eine Tabelle angelegt, 1 Datumsfeld, und dieses einmal auf dem 01.01.2010 und den 01.01.2099 gesetzt. Der SQL-Select bringt folgendes Ergebnis

    ....+...
    DAT1
    ++++++++
    01.01.10
    ******** Datenende ********

    Die ++++ Zeichen bedeuten einen Fehler im Feld. Wenn ich jedoch mit DSPPFM in die Tabelle schaue, dann sieht das schon besser aus.

    Physische Teildatei anzeigen
    :
    *...+....1
    2099-01-01
    2010-01-01
    ****** DATENENDE ******

    Das Datum wird anscheinden richtig abgelegt und nur beim Auslesen nicht sauber konvertiert.

    Finde nix, wann das behoben wird. Oder kann man es umgehen ? Ich will zwar nicht mehr bis 2039 schaffen, aber trotzdem...

    THX.

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Das Datum in der Datenbank bzw. in einer Datei ist ein Binär-Wert, der immer korrekt ist. Was Du siehst (oder auch nicht siehst) ist eine alphanumerische Aufbereitung dieses Wertes.

    Wenn es sich bei dem verwendeten Datums-Format um ein Format mit einer 2-stelligen Jahres-Aufbereitung handelt, siehst Du nur Werte zwischen dem 01.01.1940 und dem 31.12.2039.

    Wenn Du dagegen ein Datums-Format mit einem 4-stelligen Jahr (ISO, EUR, USA, JIS) verwendest, siehst Du auch alle anderen Werte.

    Wenn Du mit interaktivem SQL arbeitest (STRSQL) kannst Du das Datums-Format wie folgt verändern:
    1. F13=Service
    2. Auswahl 1=Sitzungs-Attribute ändern
    3. Option Datums-Format (DATFMT) ändern
    4. die Select-Anweisung wiederholen.

    Wenn Du mit dem iSeries Navigator arbeitest, kannst Du das Datums-Format wie folgt ändern:
    Verbindung --> JDBC-Setup --> Format --> Datum

    Birgitta
    Birgitta Hauser

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

  3. #3
    Registriert seit
    Jul 2005
    Beiträge
    232
    Danke, das funktioniert schon mal super. Aber was ist mit einem direkten JDBC-Zugriff ? Ich finde da keine derartige Einstellung im Treiber, um zum Beispiel aus JAVA heraus ein korrektes Datum zu erhalten. Bisher kriege ich bei einem solchen Datum im Result-Set immer NULL zurück.

  4. #4
    Registriert seit
    Jul 2005
    Beiträge
    232
    Habs schon gefunden. Im Treiber "date format=iso" mitgeben. Dann werden auch korrekte Werte zurückgeliefert.

Similar Threads

  1. num. Feld in Datumsfeld konvertieren
    By edig in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 27-07-06, 08:20
  2. Verkauf/Miete meherer Systeme bis V5R3
    By GAusthoff in forum NEWSboard Server & Hardware Markt
    Antworten: 1
    Letzter Beitrag: 17-11-05, 14:58
  3. Numm Feld nach DatumsFeld in SQL
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 27-04-05, 15:36
  4. fehlerhaftes Datumsfeld in SQL finden
    By rebe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 19-01-05, 16:42
  5. V5R3 rückwärts komp. bis VxRx ?
    By synus in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 01-07-04, 21:19

Berechtigungen

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