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-ID: 247536

Url: https://administrator.de/forum/crystal-report-mit-zeit-ermitteln-247536.html

Ausgedruckt am: 12.04.2025 um 05:04 Uhr

LianenSchwinger
LianenSchwinger 27.08.2014 um 10:01:36 Uhr
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
Gersen
Gersen 27.08.2014 um 10:04:56 Uhr
Goto Top
Hallo,

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

Gruß,
Gersen
LianenSchwinger
LianenSchwinger 27.08.2014 um 10:36:02 Uhr
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
a.grothe
a.grothe 27.08.2014 um 10:43:45 Uhr
Goto Top
CDate hat funktioniert.
a.grothe
a.grothe 27.08.2014 um 10:58:04 Uhr
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
Gersen
Gersen 27.08.2014 aktualisiert um 11:12:32 Uhr
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?
LianenSchwinger
LianenSchwinger 27.08.2014 aktualisiert um 11:17:21 Uhr
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
a.grothe
a.grothe 27.08.2014 um 11:38:32 Uhr
Goto Top
Danke an alle hat wunderbar geklappt.
LianenSchwinger
LianenSchwinger 27.08.2014 um 15:38:24 Uhr
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