IBM Support

RPG Cafe: Microseconds for %TIMESTAMP



RPG enhancement for %TIMESTAMP, to provide timestamps with microsecond precision and unique timestamps.


You are in: RPG Cafe > Spring 2020: Microseconds for %TIMESTAMP

Short URL:

RPG Cafe: Microseconds for %TIMESTAMP

Enhancements for %TIMESTAMP

  • %TIMESTAMP() now returns microseconds

    Note: You can add an environment variable at compile time to cause %TIMESTAMP to continue to return a value with only milliseconds. The environment variable is not needed at runtime.

  • %TIMESTAMP(*UNIQUE) returns a unique timestamp


After you compile your program to use this enhancement, a runtime PTF is needed on any system where you run your program.

PTFs for 7.3 and 7.4, available in May 2020


  • ILE RPG compiler: SI73190
  • ILE RPG runtime: SI73189


  • ILE RPG compiler: SI73192
  • ILE RPG runtime: SI73191>
  • ILE RPG compiler, TGTRLS(V7R3M0): SI73193

The PTFs are also available with the Db2 for i Fix Packs of 15 May 2020. See Db2 for IBM i 2020 PTF Group Schedule.


Microseconds for %TIMESTAMP

Formerly, %TIMESTAMP only returned a value with millisecond precision. The last three digits of the timestamp were '000'. Now, it returns a value with microsecond precision.

If you only want millisecond precision, code %TIMESTAMP(*SYS : 3). Or you can add this environment variable at compile-time (not needed at runtime):


          DCL-S ts TIMESTAMP;

          ts = %TIMESTAMP();          // Returns microseconds
          ts = %TIMESTAMP(*SYS : 3);  // Returns milliseconds

%TIMESTAMP(*UNIQUE) returns a unique timestamp

%TIMESTAMP(*UNIQUE) returns a timestamp with 12 fractional seconds. Use keyword TIMESTAMP(12) to define a variable to hold a unique timestamp.

          DCL-S ts_unique TIMESTAMP(12);

          ts_unique = %TIMESTAMP(*UNIQUE);

The first 6 fractional seconds represent the microseconds for the timestamp.

The final 6 fractional seconds do not represent increased accuracy. They are only used to make the timestamp unique.

Tip: Avoid using the result of %TIMESTAMP(*UNIQUE) for calculations that determine the amount of time between two timestamps.

RDi support

The next release of RDi will support this enhancement.

Documentation in the IBM Knowledge Center

The ILE RPG Reference and ILE RPG Programmer's Guide in the 7.3 and 7.4 IBM Knowledge Center are updated with full information about this enhancement. Start at the What's New Since 7.3 or What's New Since 7.4 section in the Reference.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS69QP","label":"Rational Development Studio for i"},"Component":"ILE RPG Compiler","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"7.3;7.4","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
06 October 2020