2011-11-30 61 views
1

我有一个使用存储过程显示某些数据的Crystal Report(2011)。其中一个领域是TimeSpent(bigint),它拥有TimeSpan中的Ticks数量(在C#中,我们将TimeSpan.Ticks传递给要存储的数据库)。Crystal 2011 - 将刻度转换为时间

很显然,在我的报告中,我不想显示这个,所以我想知道如何将刻度转换为dd:hh:mm:ss,例如, 01:05:58:251 day, 5 hours, 58 minutes and 29 seconds

回答

1

刻度线是100纳秒,或每秒1000万个刻度。所以首先转换成秒 numbervar span := {field.ticks}/10000000;

从那里,刚刚突破秒分解为碎片时间(这个片段是来自tek-tips):

numbervar days; 
numberVar hrs; 
numberVar min; 
numberVar sec; 
stringVar ddhhmmss; 
days:= Truncate(Truncate(Truncate(span/60)/60)/24); 
hrs := Remainder(Truncate(Truncate(span/60)/60),24); 
min := Remainder(Truncate(span/60),60); 
sec := Remainder(span,60); 

ddhhmmss := totext(days,0,"") + ":" + totext(hrs,"00") + ":" + totext(min,"00") + ":" + totext(sec,"00"); 

ddhhmmss
+0

真棒.....我不得不从蜱秒转换但其余的我真的迷失了。这就像一个魅力,谢谢一堆! – Robert