-
Sekunden auf Datum 01.01.1980 addieren
Hallo i5 Fans
ich suche einen Weg um eine Anzahl Sekunden auf ein Datum zu addieren.
In RPG natürlich, sorry!
Gegeben Anzahl Sekunden z.B. 831456732
Gegeben Datum/Timestamp
01.01.1980 00:00 Uhr
Gesucht Datum/Timestamp + Anzahl Sekunden für neues Datum mit Timestamp
Komme nicht so recht weiter. Weis nicht wie ich ansetzen soll?
Gibt es evtl. auch SQL Funktion?
Gruß
co_steffl
-
%date und %seconds heißen deine Freunde
D*B
Zitat von co_steffl
Hallo i5 Fans
ich suche einen Weg um eine Anzahl Sekunden auf ein Datum zu addieren.
In RPG natürlich, sorry!
Gegeben Anzahl Sekunden z.B. 831456732
Gegeben Datum/Timestamp
01.01.1980 00:00 Uhr
Gesucht Datum/Timestamp + Anzahl Sekunden für neues Datum mit Timestamp
Komme nicht so recht weiter. Weis nicht wie ich ansetzen soll?
Gibt es evtl. auch SQL Funktion?
Gruß
co_steffl
-
zunächst einmal eine Anmerkung:
Sekunden können immer nur auf eine Timestamp oder eine Zeit, nicht jedoch direkt auf ein Datum addiert werden.
Konvertierung eines Datums in eine Zeitmarke erfolgt mit der RPG Funktion %Timestamp(). Konvertierung einer Zeitmarke in ein Datum erfolgt mit der RPG-Funktion %Date. Um Sekunden auf eine Zeitmarke addieren zukönnen muss der numerische Wert in einen "rechenbaren" Zeitwert mit Hilfe der Funktion %Seconds() konvertiert werden.
PHP-Code:
/Free
NewDate = Date(%TimeStamp(MyDate) + %Seconds(NumWert));
/End-Free
In SQL ist das etwas anders, hier muss keine Funktion zur Konvertierung von Zeitwerten verwendet werden, stattdessen wird die Zeiteinheit (z.B. SECONDS) auf neuhochdeutsch hinter den numerischen Wert gestellt. Aber auch bei SQL gilt: Sekunden können nur zu Zeitmarken oder Zeiten addiert werden:
PHP-Code:
/Free
Exec SQL Set :NewDate = Date(Timestamp_ISO(:MyDate)
+ :NumWert Seconds);
/End-Free
Birgitta
-
Kleine Anmerkung:
Ich frage mich, ob der 1.1.1980 so richtig ist. Windwos/Unix/C-Funktions-Zeitmarken verwenden den 1.1.1970 als Basis.
Ausserdem ist der Sekundenwert auf UTC gerechnet sodass ggf. noch die Zeitzone dazukommt.
-
Hallo zusammen,
danke f.d. Tipps. Es funktioniert mit %Date + %Seconds.
Danke und Gruß
Co_steffl
-
Hallo zusammen,
ich habe folgendes Problem
ich muss in RPG in ein Feld JRNTMSTMP I 19,0
einen Timestamp im UTC Format schreiben.
Das soll dann so ausschauen
JRNTMSTMP . . . . . . . . : 1453446003
Ich habe es so probiert --> funkte nicht -->
JRNTMSTMP = %dec(%TimeStamp() + %Seconds(5))
JRN_JRNTMSTMP = %dec(%TimeStamp(sysDatumIso) + %Seconds(5));
Bitte um Hilfe
Vielen Dank Hannes
-
In etwa so:
%dec(%char(%date():*iso0):8:0) * 1000000 + %dec(%char(%time():*iso0):6:0)
Die Alternative ist die Definition eines Timestamps im ISO-Format in einer DS und eine Redefinition der einzelnen Teile mit Jahr, Monat, Tag, Stunde, Minute, Sekunde und Nanosekunden.
Anschließend den Wert aus den Einzelfeldern berechnen.
-
Versteh ich nicht, funktioniert doch.
PHP-Code:
dcl-s myTmestmp timestamp; dcl-s mydecstmp packed(20:0); myTmeStmp = %timestamp(); myTmeStmp += %seconds(5); mydecStmp = %dec(myTmeStmp);
oder so (kurz): mydecStmp = %dec(%timestamp() + %seconds(5));
Anm. V7R1 und Ergänzung num. Feld (muss 20 Stellen sein!)
kf
-
Wohl dem der V7 hat;-). Es gibt da noch so ein paar ältere Release wo das noch nicht geht. Da stören dann noch die Trennzeichen. Deshalb gibts ja auch das Format %char(%date():*ISO0) und das wegzubekommen.
-
Super Vielen Dank, die 20 Stellen waren schuld, aber ein Problem habe ich noch:
Ich muss das in ein UTC Format bringen, der Wert sollte dann etwa so aussehen
JRNTMSTMP I 19,0 173 180
Vielen Dank
Hannes
-
Hierfür musst du ein wenig selber rechnen.
Per RTVSYSVAL kannst du QUTCOFFSET abfragen und subtrahierst die Stunden/Minuten von deinem Timestamp.
Du musst natürlich auch sicherstellen, dass der Systemwert rechtzeitig (geht auch automatisch) an die Sommer-/Winterzeit angepasst wird.
-
Vielen Dank für Eure Antworten!!!
Similar Threads
-
By Nils_V in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 18-07-16, 09:49
-
By schatte in forum NEWSboard Windows
Antworten: 7
Letzter Beitrag: 21-11-06, 11:37
-
By pwrdwnsys in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 07-11-06, 15:34
-
By WeKaSys in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-11-06, 17:34
-
By dirkus in forum NEWSboard Drucker
Antworten: 4
Letzter Beitrag: 26-10-06, 17:52
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks