[NEWSboard IBMi Forum]

Thema: Datum

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    309

    Datum

    Hi *all

    ich habe zwei TimeStamp Felder welche ich von einander subtrahieren will/muß !!

    das Ergebnis soll die Differenze in Tagen, Stunden, Minuten, Sekunden sein.
    (am besten wieder in einem TimeStamp-Feld oder auch separat in mehreren Felder -> Tag, St, Min, etc.)

    gibt's ne Lösung in RPGLE oder vielleicht auch in SQL?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    select TimpStampA - TimeStampB ...

    Das Ergebnis ist ein Timestamp, dass die Differenz in Jahren/Monaten/Tagen/Stunden/Minuten/Sekunden/Microsekunden enthält.
    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
    2.873
    Das Ergebnis ist ein Timestamp, dass die Differenz in Jahren/Monaten/Tagen/Stunden/Minuten/Sekunden/Microsekunden enthält.
    Das Ergebnis ist ein numerisches Feld im Format 20,6, auch wenn die Differenz in JJJJMMDDHHMMSS,msmsms ausgegeben 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
    Aug 2001
    Beiträge
    309
    denke mal das es sich hier um SQL im free-format handelt oder?

    hab das einfach mal so versucht:
    PHP-Code:
    D TimeStmp_A      s               z   inz(*sys
    D TimeStmp        s               z             
    D Test            s             20  6
    D Datum           s              8  0 inz
    (*zero)   
    D ZeitA           s              6a   inz('050000')

    C                   Eval      Datum 20090712                       
                                                                         
    C                   
    Eval      TimeStmp =                             
    C                              %date(Datum:*ISO) + %time(ZeitA:*HMS0)

    /
    free                                                 
       Exec SQL Select 
    :TimpStampA - :TimeStamp into :Test
    /end-free 
    bekomme dann beim umwandeln immer folgenden SQL-Fehler:
    PHP-Code:
       30         /end-free                                                       
    5722ST1 V5R4M0 060210          SQL
    -ILE-RPG-Objekt erstellen         
                                                 DIAGNOSENACHRICHTEN              
    MSG ID  WTK  SATZ  TEXT                                                       
    SQL0104  30      30  Position 23 Token 
    ungültigGültige Token: , FROM.     
                        
    Nachrichtenzusammenfassung                                
      Gesamt    Info   Warnung      Fehler  Wertigk
    Beendigung                   
          1        0         0          0        1         0 
    oder bin ich da irgendwie auf dem "Holzweg"?


    Zusatz:
    Hab das in meinem ersten "Post" vielleicht nicht ganz richtig beschrieben!

    die beiden TimeStamp-Felder kommen aus einem RPGLE-Programm und werden von diesem auch gefüllt

  5. #5
    Registriert seit
    Feb 2008
    Beiträge
    104
    Wenn es in RPGLE sein soll, dann versuch es mal mit:

    %DIFF (Difference Between Two Date, Time, or Timestamp Values) %DIFF

    näheres dazu im Handbuch nachlesen

    Karl-Heinz

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    309
    da kann ich aber doch nur angeben ob ich das Ergebnis in Tagen oder in Stunden, etc. haben will und nicht in Tagen, Std., u. Sekunden.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    exec sql set : MyVar = : MyTime1 - : Mytime2;
    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
    Aug 2001
    Beiträge
    309
    jetzt bekomm ich dann folgende Meldung:
    PHP-Code:
       29            Exec SQL set Test = : TimeStamp_a - : TimeStamp;           
    5722ST1 V5R4M0 060210          SQL-ILE-RPG-Objekt erstellen        
                                                 DIAGNOSENACHRICHTEN              
    MSG ID  WTK  SATZ  TEXT                                                       
    SQL0312  30      29  Position 50 Variable TIMESTAMP_A nicht definiert oder    
                         nicht verwendbar
    .                                        
    SQL0312  30      29  Position 66 Variable TIMESTAMP nicht definiert oder      
                         nicht verwendbar


  9. #9
    Registriert seit
    May 2002
    Beiträge
    1.121
    Wenn ich mir dein Post von 08:03 anschaue, dann sind die Felder ja auch in den D-Bestimmungen anders definiert.
    Schau noch mal genau auf die schreibweise

    Ronald

Similar Threads

  1. SQL: Aus mehreren Feldern ein Datum erkennen
    By I0N in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 21-11-06, 12:44
  2. SQL DATUM
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 20-11-06, 18:37
  3. Datum in Query
    By heini in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-09-06, 10:10
  4. Datum überlebt ODBC Transfer auf Excel nicht
    By jjagi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 07-07-06, 08:29
  5. Datum sicher in *EUR wandeln
    By JonnyRico in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 27-04-06, 12:45

Berechtigungen

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