PDA

View Full Version : Datum



muadeep
13-07-09, 14:23
Hi *all

ich habe zwei TimeStamp Felder welche ich von einander subtrahieren will/muß !!

das Ergebnis soll die Differenze in Tagen, Stunden, Minuten, Sekunden sein.
(am besten wieder in einem TimeStamp-Feld oder auch separat in mehreren Felder -> Tag, St, Min, etc.)

gibt's ne Lösung in RPGLE oder vielleicht auch in SQL?

Fuerchau
13-07-09, 16:20
select TimpStampA - TimeStampB ...

Das Ergebnis ist ein Timestamp, dass die Differenz in Jahren/Monaten/Tagen/Stunden/Minuten/Sekunden/Microsekunden enthält.

B.Hauser
13-07-09, 18:50
Das Ergebnis ist ein Timestamp, dass die Differenz in Jahren/Monaten/Tagen/Stunden/Minuten/Sekunden/Microsekunden enthält.

Das Ergebnis ist ein numerisches Feld im Format 20,6, auch wenn die Differenz in JJJJMMDDHHMMSS,msmsms ausgegeben wird.

Birgitta

muadeep
14-07-09, 07:03
denke mal das es sich hier um SQL im free-format handelt oder?

hab das einfach mal so versucht:

D TimeStmp_A s z inz(*sys)
D TimeStmp s z
D Test s 20 6
D Datum s 8 0 inz(*zero)
D ZeitA s 6a inz('050000')

C Eval Datum = 20090712

C Eval TimeStmp =
C %date(Datum:*ISO) + %time(ZeitA:*HMS0)

/free
Exec SQL Select :TimpStampA - :TimeStamp into :Test
/end-free bekomme dann beim umwandeln immer folgenden SQL-Fehler:

30 /end-free
5722ST1 V5R4M0 060210 SQL-ILE-RPG-Objekt erstellen
DIAGNOSENACHRICHTEN
MSG ID WTK SATZ TEXT
SQL0104 30 30 Position 23 Token / ungültig. Gültige Token: , FROM.
Nachrichtenzusammenfassung
Gesamt Info Warnung Fehler Wertigk. Beendigung
1 0 0 0 1 0 oder bin ich da irgendwie auf dem "Holzweg"?


Zusatz:
Hab das in meinem ersten "Post" vielleicht nicht ganz richtig beschrieben!

die beiden TimeStamp-Felder kommen aus einem RPGLE-Programm und werden von diesem auch gefüllt

Khholm
14-07-09, 07:43
Wenn es in RPGLE sein soll, dann versuch es mal mit:

%DIFF (Difference Between Two Date, Time, or Timestamp Values) %DIFF

näheres dazu im Handbuch nachlesen

Karl-Heinz

muadeep
14-07-09, 07:45
da kann ich aber doch nur angeben ob ich das Ergebnis in Tagen oder in Stunden, etc. haben will und nicht in Tagen, Std., u. Sekunden.

Fuerchau
14-07-09, 08:33
exec sql set : MyVar = : MyTime1 - : Mytime2;

muadeep
14-07-09, 08:53
jetzt bekomm ich dann folgende Meldung:

29 Exec SQL set : Test = : TimeStamp_a - : TimeStamp;
5722ST1 V5R4M0 060210 SQL-ILE-RPG-Objekt erstellen
DIAGNOSENACHRICHTEN
MSG ID WTK SATZ TEXT
SQL0312 30 29 Position 50 Variable TIMESTAMP_A nicht definiert oder
nicht verwendbar.
SQL0312 30 29 Position 66 Variable TIMESTAMP nicht definiert oder
nicht verwendbar.

malzusrex
14-07-09, 10:16
Wenn ich mir dein Post von 08:03 anschaue, dann sind die Felder ja auch in den D-Bestimmungen anders definiert.
Schau noch mal genau auf die schreibweise

Ronald