PDA

View Full Version : CYYMMDDHHMMSS umwandeln



Chris.jan
05-06-18, 16:25
Ich muss in RPGLE das obige Format in eine Timestamp umwandeln.
Geht das auch einfacher als daraus ein langes Timestamp zu bauen und dann mit %timestamp umzuwandeln?

Fuerchau
05-06-18, 16:50
%timestamp erwartet ein Char(22) oder aber ein Char(14).

%timestamp(%char(MyCYYMMDDHHMMSS +19000000000000):*iso0)

https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/rzasd/bbtmst.htm

Chris.jan
06-06-18, 10:38
Nö, das taugt nix, char(14) akzeptiert er nicht.
Es geht nur so:
eval timestamp =
%date('20' + %subst(bshbegtm:2:6): *iso0)
+ %time(%subst(bshbegtm:8:6): *iso0)

Pikachu
06-06-18, 11:03
Müßte auch mit *CYMD0 ab Stelle 1, Länge 7 ohne '20'+ gehen.

Fuerchau
06-06-18, 11:10
Wie immer Releaseabhängig, aber dies geht:

%timestamp(%char(MyCYYMMDDHHMMSS +19000000000000)+'000000':*iso0)

Solange du kein Datum vor 2000 hast, kannst du das "C" ja abschneiden. Dies hat aber
0 = 1900, 1=2000, ...