[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2011
    Beiträge
    48

    Ungültiges Datum in einer mit SQL erstellten Tabelle

    Ich habe in einer mit SQL erstellten Tabelle (Datei) ein Datumsfeld (Feldart L). Wenn das Datum grösser als 2039-12-31 ist, bringt SQL beim Lesen den Fehler SQL0181 (SQLCODE -181).
    An invalid datetime format was detected; that is, an invalid string representation or value was specified.
    Warum ?
    Lt. IBM Handbuch
    "System i: Database SQL messages and codes System i: Database SQL messages and codes "
    müsste das Jahr von 0001 - 9999 gültig sein?

  2. #2
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Ich sehe Du bist nicht auf dem laufenden, im Gegensatz zur IBM.

    TP: Weltuntergang 2039 ff.?

    ;-)

    GG

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Ich nehme an das Problem tritt auf wenn die Datei mit Embedded SQL verarbeitet wird.

    Das Problem hat nichts mit SQL oder DDS beschriebenen Tabellen sondern eher mit den Restriktionen in RPG zu tun.

    Das liegt daran, dass SQL (besser der SQL Precompiler für seine Hilfsfelder) das Datums-Format, das im Compile-Befehl hinterlegt ist verwendet. Der Default im Compile-Befehl ist *JOB. Das Job-Datum ist i.d.R. mit einem 2-stelligen Jahr definiert. Der gültige Datumsbereicht für ein 2-stelliges Jahr liegt zwischen 1940 und 2039.

    Du hast 2 Möglichkeiten:
    1. Ein Datumsformat mit 4-stelliger Jahresangabe (*ISO, *USA oder *EUR welches ist egal) im Compilebefehl anzugeben.
    2. Das Datumsformat in einem SQL SET OPTION-Befehl (SET OPTION DATFMT = *ISO) in der Source zu hinterlegen.
    Achtung: SET OPTION muss IMMER der 1.SQL-Befehl sein, der physisch in einer Quelle hinterlegt wird.

    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

  4. #4
    Registriert seit
    Feb 2011
    Beiträge
    48
    Danke für die prompte Antwort.
    Es scheint tatsächlich am Embedded SQL in RPG zu liegen.

    Josef Gschwend, Vils/Tirol

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Auch bei STRSQL wird +++ angezeigt, wenn du nicht mit F13->1 das Datumformat auf ISO anpasst.
    Wenn allerdings die H-Bestimmung bzgl. Datumsformat von SQL-Option abweicht, kommt ggf. das Problem wieder beim EVAL/MOVE !
    Also auch die H-Bestimmung auf DATFMT(*ISO) anpassen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Antworten: 11
    Letzter Beitrag: 18-07-16, 09:49
  2. SQL Datum
    By steven_r in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 04-12-06, 12:16
  3. SQL: Aus mehreren Feldern ein Datum erkennen
    By I0N in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 21-11-06, 12:44
  4. SQL DATUM
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 20-11-06, 18:37
  5. Datum in SQL
    By cbe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 03-11-05, 09:11

Berechtigungen

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