[NEWSboard IBMi Forum]

Thema: %timestamp()

  1. #1
    Registriert seit
    Sep 2004
    Beiträge
    136

    %timestamp()

    Hallo,

    der %timestamp() in RPGLE liefert an den letzten 3 Stellen immer 0 zurück
    SQL dagegen liefert den Wert exact incl. der 3 letzten Stellen zurück. Ich habe auch schon die ftime() und gettimeofday() ausprobiert, aber die liefer auch immer nur 0 an den letzen 3 Stellen.
    Gibt es noch ne andere möglichkleit außer das per SQL zu lösen?

    Gruß
    Xanas

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Ob es eine andere Lösung gibt? Keine Ahnung!
    Aber was spricht denn gegen SQL?

    PHP-Code:
    Exec SQL  Set :MyTimeStp Current_Timestamp
    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
    Sep 2004
    Beiträge
    136
    weil dann das messen länger dauert als das was ich messen will
    Ich will dioch einfach nur den aktuellen timestamp

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    die C function gettimeofday ist dein Freund, meine mich erinnern zu können, dass ich da mal einen Artikle zu in MM geschrieben habe.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    "gettimeofday" liefert die genau Zeit in Sekunden seit 1.1.1970 GMT sowie Microsekunden.
    Damit sind Messungen sehr wohl möglich.

    Willst du das dann in einen Timestamp umwandeln, musst du das allerdings selber machen, da die Builtin-Funktion das leider nicht liefert.

    MyTimestamp = %timestamp(%date('1970-01-01')) + %seconds(tv_sec) + %mseconds(tv_usec);

    Wenn du die lokale Zeit dann haben willst, machst du das mit "localtime" oder addierst selber den Systemwert QUTCOFFSET dazu.

    Wenn dir das zu kompliziert ist, kannst du auch das API Convert Date and Time Format (QWCCVTDT) API verwenden.
    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

  6. #6
    Registriert seit
    Sep 2004
    Beiträge
    136
    Danke schon mal. Den Weg zur Localtime spare ich mir mal, weil ich eh nur die Differenz von 2 Timestamps haben möchte.

    Gruß
    Xanas

Berechtigungen

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