[NEWSboard IBMi Forum]

Thema: SQL - Problem

  1. #1
    Registriert seit
    Jan 2007
    Beiträge
    70

    Smile SQL - Problem

    Hallo zusammen,

    wieso funktioniert das bei einem SELECT * aber nicht bei einem UPDATE


    update X420PRDSD/BEKN SET BOSTAP = '0'
    WHERE
    DAYS(DATE(DAY(BOGUBI)||'.'||MONTH(BOGUBI)||'.'||ye ar(BOGUBI)))
    <
    DAYS(CURDATE())-360



    Bekomme hier die Fehlermeldung

    Wert in Datums-, Zeit- oder Zeitmarkenzeichenfolge ungültig.


    Danke

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Was für ein Format (alpha, numerisch, Datum) hat eigentlich BOGUBI.

    Sofern Du mit den Funktionen DAY, MONTH, YEAR arbeiten kannst, sollte es ein Datum oder eine Zeitmarke sein.

    Dann stellt sich allerdings die Frage warum Du die Klimmzüge machst, das Datum zunächst in eine alphanumerische Darstellung eines Datums zu konvertieren und dann wieder in ein Datum, nur um die Anzahl der Tage zu ermitteln.

    Sofern es sich um ein Datum oder Zeitmarke handelt, sollte das Ganze auch so funktionieren:
    Code:
    Where BOGUBI < (Current_Date - 360 Days)
    sofern es sich nicht um ein Datum eine Zeitmarke oder eine gültige alphanumerische Darstelllung eines Datums handelt, kannst Du auch nicht die Funktionen Days, Days, Month, Year verwenden.

    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

  3. #3
    Registriert seit
    Jan 2007
    Beiträge
    70
    Vielen Dank für die Info,

    ja es funktioniert. Das Format im Feld BOGUBI - 20120723


    Danke

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Franz Karl Beitrag anzeigen
    Vielen Dank für die Info,

    ja es funktioniert. Das Format im Feld BOGUBI - 20120723


    Danke
    Das ist aber kein Datum oder (für SQL gültige) alphanumerische Darstellung, sondern entweder ein alphanumerisches Datum ohne Trennzeichen oder ein numerisches Datum.

    Gültige alphanumerische Darstellungen für ein Datum sind:
    'JJJJ-MM-TT', 'TT.MM.JJJJ', 'MM/TT/JJJJ', 'JJJJ/TTT'
    oder eine alphanumerische Zeitmarke im Format:
    'JJJJ-MM-TT-HH.MM.SS.MSMSMS' , 'JJJJ-MM-TT HH:MM:SS.MSMSMS', 'JJJJMMTTHHMMSS'

    In beiden Fällen ist eine Konvertierung in ein Datum erforderlich.
    Die einfachste Methode ist:
    1. für ein alphanumerisches Datum im Format JJJJMMTT:
    Code:
    Date(DatumAlpha concat '000000')
    2. für ein numerisches Datum im Format JJJJMMTT
    Code:
    Date(Digits(DatumNum) concat '000000')
    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

  5. #5
    Registriert seit
    Jan 2007
    Beiträge
    70
    Ja super vielen Dank. Sehr viel einfacher.

    Grüsse Franz

Similar Threads

  1. problem mit eigener sql function
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 26-05-06, 16:37
  2. SQL Problem
    By Lucky4712 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-05-06, 15:57
  3. Problem bei Abfrage bei Imbedded SQL
    By cbe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-06-05, 16:21
  4. embedded SQL Performance Problem mit SCROLL
    By itec01 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 16-09-04, 18:38
  5. Problem bei ILE COBOL mit sql connect to
    By rebe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-09-01, 13:55

Berechtigungen

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