Anmelden

View Full Version : Timestamp im CL generieren



Seiten : 1 [2] 3

Pikachu
30-10-25, 20:53
Systemwert QDATETIME gibt’s wohl ab V5R3. (https://www.mcpressonline.com/operating-systems/ibm-i-os400-i5os/techtip-v5r3-system-values)

Fuerchau
31-10-25, 12:59
Ich habe jetzt keine IBM im Zugriff und die Doku zeigt da nichts näheres zum Format:

"QDATETIME system value returns the combined values of the QDATE and QTIME system values in a single field."

Laut meiner Erinnerung ist das Datum in QDATE allerdings nicht timestampfähig, also nicht zwangsweise in ISO.

Pikachu
31-10-25, 13:06
Systemwertparameter (https://www.ibm.com/docs/de/i/7.5.0?topic=values-system-value-parameters)
QDATETIME 1
Datum und Uhrzeit
Datum und Uhrzeit
CHAR
20
Kein Standardwert.
Gibt QDATE und QTIME an.

Fuerchau
31-10-25, 13:32
Ich habe noch mal rückgefragt:
Da QDATE und QTIME im eingestellten Format geliefert werden, ist zumindest QDATE meist nicht sortierfähig, da es z.B. in EUR ausgegeben wird.
Ein Timestamp (egal ob ILERPG oder SQL) ist immer in ISO erhaltbar. Im ILERPG auch als *ISO0, also als reine Zahl. Im CLP benötige ich immer Zusatzaufwände und ich weiß nicht, wieviele Millionen identische Codezeilen es hierzu weltweit gibt, die ich mir vor über 30 Jahren leider nicht habe patentieren lassen.

Pikachu
31-10-25, 13:54
QDATETIME kann man in CLP einfach als Text nehmen.

Fuerchau
31-10-25, 14:01
Hast du denn dein zentrales QDATFMT auf *ISO stehen?
Da, wo ich nachsehen kann, steht halt
"31.10.2025 13:25:07"
und somit nicht sortierfähig. Du musst es also, wie Birgitta schon schrieb, mit %SST und *CAT so zusammenbauen, dass es geht.
Und der Doppelpunkt ist zumindest für Windows nicht erlaubt.

Pikachu
31-10-25, 14:10
QDATETIME ist unabhängig von QDATFMT.
RTVSYSVAL bringt da immer 20 Zeichen (jjjjmmtthhnnssxxxxxx).
Beim DSPSYSVAL wird es halt lesbar angezeigt.

Siehe hier: RTVSYSVAL QDATETIME ... (https://www.as400andsqltricks.com/2024/01/CL%20command%20for%20Timestamp.html)

Fuerchau
01-11-25, 16:02
Daran merkt man dann, wie man älter wird;-).

Pikachu
01-11-25, 21:04
CL wurde in V5R3 um Einiges erweitert.

Fuerchau
02-11-25, 14:09
Ja, mit CLLE gibts sogar Schleifen und Subroutinen.
Was noch fehlt wären einfache Print-Befehle.
Früher habe ich mal intensiver mit REXX gearbeitet.
Eine komplexe, oft vernachlässigte Sprache, die CL-Befehle mit Returnvars und SQL unterstützt, Subroutinen und Funktionsaufrufe auch über Quell-Grenzen hinweg. Und mit der Überschreibung von STDOUT auf QPRINT konnte man sogar Protokolle schreiben.
Bei *FCFC-Überschreibung sogar mit Seitenwechsel und Überschriften.
Hinzukam auch eine gewisse Dynmaik, also das Zusammensetzen von Befehlsketten um mit "Interpret" ausgeführt zu werden.
Ich glaube, REXX gibts immer noch.