a.grothe
Goto Top

Crystal Report - mit Zeit ermitteln

Hallo zusammen,

ich habe ein Problem mit Crystal Report.

In meiner Datenbank steht eine Datum Uhrzeit Angabe. z.B. 2014-08-01T10:44:23.6366+02:00 und in einem zweiten Feld z.B. 2014-08-01T11:44:23.6366+02:00

Nun meine Fragen:

Wie kann ich das Datum in Crystal Report als 01.08.2014 ausgeben?

Nun muss ich die Dauer zwischen Feld 1 und Feld 2 ausgeben, da das Datum immer gleich ist würde es reichen nur die Uhrzeit zu betrachten:

11:44 - 10:44 = 1h

Leider bekomme ich immer den Wert 00:00:00 angezeigt mit folgender Formel:
Gebe ich die ***_Format Werte aus wird auch 10:44 ausgegeben nur mal der differenz kommt immer wieder 00:00:00

Local Stringvar leaveTime:=mid({Tabelle1_.CloseTime},12,5);
Local TimeVar leaveTime_Format := CTime (leaveTime);
Local Stringvar createTime:=mid({Tabelle1_.CreateTime},12,5);
Local TimeVar createTime_Format := CTime (createTime);
Local TimeVar differenz := CTime(leaveTime_Format-createTime_Format);

Danke für die Hilfe.

Content-Key: 247536

Url: https://administrator.de/contentid/247536

Printed on: April 24, 2024 at 11:04 o'clock

Member: LianenSchwinger
LianenSchwinger Aug 27, 2014 at 08:01:36 (UTC)
Goto Top
Hallo,

das Datum bekommst Du schon mal wie folgt:

code>
CDATE(LEFT(deinDatumUhrzeitFeld,10));


Eventuell musst Du das Feld noch entsprechend formatieren. Bei mir wird es direkt richtig angezeigt.

G Jörg
Member: Gersen
Gersen Aug 27, 2014 at 08:04:56 (UTC)
Goto Top
Hallo,

zur Zeit-/Datums-Differenz könnte DateDiff hilfreich sein.

Gruß,
Gersen
Member: LianenSchwinger
LianenSchwinger Aug 27, 2014 at 08:36:02 (UTC)
Goto Top
Hallo Gersen,

DateDiff geht nicht, da hier eine Zahl zurück gegeben wird.
Ich denke dafür muss man selbst eine kleine Funktion Stricken oder was warscheinlicher einfacher ist das in die SQL Abfrage mit einbauen.

G Jörg
Member: a.grothe
a.grothe Aug 27, 2014 at 08:43:45 (UTC)
Goto Top
CDate hat funktioniert.
Member: a.grothe
a.grothe Aug 27, 2014 at 08:58:04 (UTC)
Goto Top
Hallo Jörg,

eine Idee wie ich das lösen kann mit der Uhrzeit?
Ich habe es geschafft die Wert 1 und Wert 2 als formatierte Zeit auszugeben nur leider rechnet er nicht mit den Feldern.

Gruß

Andreas
Member: Gersen
Gersen Aug 27, 2014 updated at 09:12:32 (UTC)
Goto Top
Zitat von @LianenSchwinger:
DateDiff geht nicht, da hier eine Zahl zurück gegeben wird.
Jo, und die zurückgegebene Zahl im Intervalltyp "Minuten" sollte sich doch eigentlich auch ins Datums-Format "hh:nn" formatieren lassen (etwa hier). Oder?
Member: LianenSchwinger
LianenSchwinger Aug 27, 2014 updated at 09:17:21 (UTC)
Goto Top
OK, mit IntervalTyp 'Minuten' kann man rechnen. face-smile
Dazu muss man aber die beiden Datumswerte in ein passendes Format vorher umbauen. Geht auf jeden Fall auch.

Hier mal was auf die Schnelle ohne DateDiff, was funktioniert.

local StringVar a := '2014-08-01T10:44:23.6366+02:00';  
local StringVar b := '2014-08-01T11:21:23.6366+02:00';  

local TimeVar c;

local NumberVar h;
local NumberVar m;
local NumberVar h1 := ToNumber(Mid(a,12,2));
local NumberVar h2 := ToNumber(Mid(b,12,2));
local NumberVar m1 := ToNumber(Mid(a,15,2));
local NumberVar m2 := ToNumber(Mid(b,15,2));

h := IIf(m2<m1,h2-h1-1,h2-h1);
m := IIf(m2<m1,60-m1+m2,m2-m1);


c := TimeValue(h,m,0);

Kann man natürlich auch noch kürzer zusammenfassen. face-smile

G Jörg
Member: a.grothe
a.grothe Aug 27, 2014 at 09:38:32 (UTC)
Goto Top
Danke an alle hat wunderbar geklappt.
Member: LianenSchwinger
LianenSchwinger Aug 27, 2014 at 13:38:24 (UTC)
Goto Top
... dann bitte auf gelöst setzen und gerne auch die Beiträge markieren, die zur Lösung beigetragen haben. face-wink

G Jörg