[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2003
    Beiträge
    290

    Timestamp_format liefert Fehler

    Hallo,

    ich bereite ein Datum aus einem numerischen Feld, gespeichert im Format JJMMTT, mit SQL auf.
    Im Feld steht 001116, also 16.11.2000, ich habe es hier dann mal "von Hand" getestet !

    select char(date(timestamp_format(char(001116),'RRMMDD')),eur) from sysibm.sysdummy1

    Ich bekomme den Fehler CPF426B "Funktion TIMESTAMP_FORMAT kann nicht ausgeführt werden" mit Ursachencode "13 -- Die Zeitmarke kann von der angegebenen Formatierzeichenfolge nicht interpretiert werden."


    Mache ich das mit "011116" bekomme ich als Ergebnis "06.11.2011" !!! ...also auch falsch, aber ich bekomme ein Result.

    Auch wenn ich "RRMMDD" auf "YYMMDD" ändere, funktioniert es nicht !
    Und wenn ich im IBM Knowledge Center den Hinweis zu "RR" bzw. "RRRR" lese, scheint genau die Verwendung von "RRRR" hier mein Problem zu sein.

    Ich habe schon gesucht, finde aber keine Infos dazu.
    Kann mir jemand helfen ???

    Danke vorab und Vg.

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Ich gehe mal davon aus, dass es sich bei 001116 eigentlich um eine Spalte im Format DEC(6, 0) handelt.
    Wenn das so ist, musst Du den numerischen Wert mit Digits umsetzen.

    Oder notfalls wie ich hier ein bisschen herumtricksen:
    Code:
    With x (NumDat) as (Values(Cast(1116 as Dec(6, 0))))
    Select Timestamp_Format(Digits(NumDat), 'RRMMDD') 
       from x;
    Anstatt mit CHAR und anderem hin-und her zu formatieren würde ich für den zweiten Schritt, d.h. die Ausgabe als Datum im europäischen Format mit VARCHAR_FORMAT arbeiten:
    Code:
    With x (NumDat) as (Values(Cast(1166 as Dec(6, 0))))
    Select VarChar_Format(Timestamp_Format(Digits(NumDat), 'RRMMDD'), 'DD.MM.YYYY') 
       from x;
    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
    Jan 2003
    Beiträge
    290
    Danke Birgitta !
    Leider funktioniert es aber nicht...

    Select VarChar_Format(Timestamp_Format(Digits(001116), 'RRMMDD'), 'DD.MM.YYYY')
    from sysibm.sysdummy1


    führt zum gleichen Fehler !!!

    Während aber ...

    With x (NumDat) as (Values(Cast(001116 as Dec(6, 0))))
    Select VarChar_Format(Timestamp_Format(Digits(NumDat), 'RRMMDD'), 'DD.MM.YYYY') from x

    zum korrekten Ergebnis führt !!!
    Habe ich etwas übersehen ???

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Das passiert, weil Du direkt eine Zahl angibst. Diese Zahl wird als Integer interpretiert.
    Mit Digits wird daraus: '0000001166'
    Mit Char wird daraus: '1166' plus 6 folgende Blanks
    Und beides kann nicht konvertiert werden.

    Wenn Du die Zahl dagegen explizit als Decimal(6, 0) castest, funktioniert es mit Digits.
    Mit Char funktioniert es allerdings weiterhin nicht, da die Ziffern linksbündig ausgerichtet und dann mit *Blanks aufgefüllt werden.

    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

  5. #5
    Registriert seit
    Jan 2003
    Beiträge
    290
    Hallo Birgitta,

    ja, es ist wie du sagst :=)
    Vielen Dank !

    Frohe Weihnachten und alles Gute für 2021, Gesundheit, Glück und Zufriedenheit !!!

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.644
    Zitat Zitat von Peet Beitrag anzeigen
    ja, es ist wie du sagst :=)
    Man sollte ab und an auf die Damen hören ;-)
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Nun, lesen der Betriebsanleitungen hilft da auch schon mal, durchaus;-).
    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

  8. #8
    Registriert seit
    Jan 2003
    Beiträge
    290
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Nun, lesen der Betriebsanleitungen hilft da auch schon mal, durchaus;-).
    Vollkommen überflüssig, deine arrogante Bemerkung !

  9. #9
    Registriert seit
    May 2002
    Beiträge
    1.121
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Nun, lesen der Betriebsanleitungen hilft da auch schon mal, durchaus;-).
    Das habe ich mir auch schon manchnmal gesagt, nach dem man viel Zeit vergeudet hatte...
    ;-)

    Liebe Grüße
    Ronald

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ich weiß zwar nicht was Lesen mit Arroganz zu tun hat, aber das ist ja auch nur Meinung.
    Allerdings, und das muss ich zugeben, muss aus den Bausteinen, die man durch Lesen erwirbt, letztlich jeder selber das richtige Bauwerk zimmern.
    Und das nennt man dann Erfahrung.
    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. Insert mit SQL Prozedur liefert Resultset mittels Final Table
    By Gutmann in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 06-09-17, 08:55
  2. Antworten: 5
    Letzter Beitrag: 31-08-17, 13:50
  3. Antworten: 9
    Letzter Beitrag: 22-12-15, 13:08
  4. Antworten: 7
    Letzter Beitrag: 23-03-15, 18:21
  5. IBMDA400 liefert keine Daten
    By JMH in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 15-01-14, 15:53

Berechtigungen

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