[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    309

    Thumbs up extract timestamp in num. Feld

    hallo *all

    ich benötige aus einem TimeStamp Feld (=Dantenbank mit SQL erstellt) nur das Datum und dieses in einer 8 stelligen RPG Variablen

    PHP-Code:
    Datum:
    2007-04-24-10.48.20.000000 
    in der RPG-Variablen sollte dann folgendes stehen:
    PHP-Code:
    20070424 
    kann ich das irgendwie mit EVAL .... auslesen/übertragen?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    JJJJMMTT =

    %dec(%char(%date(MyTimeStamp):*iso0):8:0)

    TTMMJJJJ =

    %dec(%char(%date(MyTimeStamp):*eur0):8:0)
    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

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    309
    PHP-Code:
    D DatumX          s              8  0 inz(0)

    DatumX = %dec(%char(%date(DATUM):*ISO0):8:0); 
    da bekomm ich dann aber immer folgenden Fehler:

    PHP-Code:
    Datums-, Zeitoder Zeitmarkenwert ist ungültig (C G D F). 

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Code:
     JJJJMMTT = %Dec(%Date(MyTimestamp): *ISO);
    Sollte eigentlich reichen. Eine zusätzliche Konvertierung in eine alphanumerische Darstellung (%CHAR) ist nur erforderlich, wenn Du noch nicht auf Release V5R3 bist.

    Vor Release V5R3 kann auch %DEC() durch %INT ersetzt werden (dann müssen weder Länge noch Nachkommastellen angegeben werden:

    Code:
     JJJJMMTT = %Int(%Char(%Date(MyTimeStamp): *ISO0));
    ... bist Du sicher, dass DATUM eine gültige Zeitmarke enthält?

    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
    Aug 2001
    Beiträge
    309
    @Birgitta

    es kommt die selbe Fehlermeldung

    sicher bin ich mir nicht, aber ich geh mal davon aus!

    Feld sieht wie folgt aus und ist wie folgt beschrieben:

    PHP-Code:
    DATUM:
    2010-04-19-13.57.08.000000

    Name         von   bis Länge  Dat
    .Art   E/A Bezeichnung
    DATUM         47    72    26        Z    B 

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn ich nicht mit %char(Datum:*iso0) arbeite, kommt bei mir auch immer der Fehler.

    Alternativ geht aber auch:

    %subdt(Datum:*years) * 10000 + %subdt(Datum:*months) * 100 + %subdt(Datum:*days)

    Es gibt wie immer mehrere Möglichkeiten.

    In SQL arbeite ich genauso:

    year(Datum) * 10000 + month(Datum) * 100 + day(Datum)
    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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Achja, noch zu wissen:

    Eine Zeitmarke ist immer im ISO-Format.
    Ein Datum ist immer im angegeben Datumformat der H-Zeile (DATFMT, default ist glaube ich *dmy oder *eur) .
    Ggf. kann daher %dec(%date(Datum)) nicht umwandeln.

    Durch die genaue Angabe
    %char(%date(Datum):*iso0)
    ist man dann auf der sicheren Seite, unabhängig von der H-Definition.
    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
    Nov 2003
    Beiträge
    2.307
    PHP-Code:
    EVAL      JJJJMMTT = %DEC(                        
                         %
    SUBST(%CHAR(ZEITMARKE):1:4
                       + %
    SUBST(%CHAR(ZEITMARKE):6:2
                       + %
    SUBST(%CHAR(ZEITMARKE):9:2):8:0

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    309
    hab jetzt mal folgendes probiert,
    aber leider hat keine dieser Varianten funktioniert!

    PHP-Code:
    H Option(*SrcStmt : *NoDebugIODatedit(*DMYDatFmt(*ISO)
    H DftActGrp(*No)

    D DatumX          s              8  0 inz(0)

    DatumX = %uns(%char(%date(DATUMA:*DMY):*ISO0));
    DatumX = %uns(%char(%date(DATUM:*ISO):*ISO0)); 
    DatumX = %dec(%char(%date(DATUM):*ISO0):8:0);  
    DatumX = %dec(%char(%date(DATUM):*eur0):8:0);

    DatumX = %int(%char(%date(DATUM): *ISO0));

    DatumX  = %DEC(                        
                   %
    SUBST(%CHAR(Datum):1:4
                 + %
    SUBST(%CHAR(Datum):6:2
                 + %
    SUBST(%CHAR(Datum):9:2):8:0); 

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Eine Zeitmarke in einer externen Datei wird wie es aussieht als alphanumerisches Feld A(26) ins RPG-Programm hereingeholt, sieh mal in der Umwandlungsliste nach.

    Probier dann mal so:
    PHP-Code:
    EVAL      DATUMX = %DEC(%SUBST(DATUM:1:4)     
                          + %
    SUBST(DATUM:6:2)     
                          + %
    SUBST(DATUM:9:2):8:0

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    309
    das Feld wird im ILE über SQL gelesen!

    PHP-Code:
    select XYZDATUM    
      from TEST_X00001                                       
     where XYZ 
    '2406915' and                               
           
    date(DATUMbetween '01.07.10' and '30.12.10' 

  12. #12
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Welches Attribut hat das Feld DATUM im Abschnitt "Querverweisliste" in der Umwandlungsliste?

Similar Threads

  1. Timestamp Feld von MS Access abfragen
    By andreas.lundschien in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-09-06, 14:55
  2. num. Feld in Datumsfeld konvertieren
    By edig in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 27-07-06, 08:20
  3. sql num. Feld formatieren
    By rr2001 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 11-07-06, 14:10
  4. ILE Feld in Feld ansprechen
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 10-05-06, 16:26

Berechtigungen

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