我有一份Crystal Report(2011),它使用存储过程来显示一些数据。其中一个字段是TimeSpent(bigint),它保存TimeSpan中的Ticks数量(在C#中,我们将TimeSpan.Ticks传递给要存储的DB)。
显然在我的报告中我不想显示这个,所以我想知道如何将刻度转换为读取dd:hh:mm:ss
,例如01:05:58:25
的{{1}}?
答案 0 :(得分: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