2016-02-17 1 views
0

J'ai un rapport et un des champs calcule une plage temporelle dans une expression par exempleFormat SSRS timespan calculé dd: hh: mm: ss

=Fields!Date1.Value-Fields!Date2.Value 

Je voudrais afficher au format dd: hh: mm: ss donc les jours, les heures, les minutes et les secondes. Si je laisse juste l'expression ça fonctionne mais je reçois des millisecondes dont je ne veux pas et s'il n'y a pas de jours alors cette valeur disparaît.

J'ai vu beaucoup d'exemples en utilisant la mise en forme pour obtenir HH: mm: ss mais pas sur la façon de faire les jours.

Répondre

0

Sur la base de la réponse de @ alejandro J'ai fini avec

=Format(Floor(DateDiff("s",Fields!Date1.Value,Fields!Date2.Value)/86400),"00") 
& ":" & Format(DateAdd("s", (Fields!Date2.Value-Fields!Date1.Value).TotalSeconds, 
"00:00:00"), "HH:mm:ss") 

faire juste la soustraction droite ne semble pas fonctionner.

1

Essayez:

=Floor(DateDiff("s",Fields!Date1.Value,Fields!Date2.Value)/86400) & ":" & 
Format(DateAdd("s", Fields!Date1.Value-Fields!Date2.Value, "00:00:00"), "HH:mm:ss") 

Il vous donnera le format dd:HH:mm:ss. La note Date1 doit être supérieure à Date2.

+0

hmmm j'obtiens une erreur indiquant que '/' n'est pas défini pour le type 'Date' et le type 'Integer' – DasDave

+0

@DasDave, Vérifiez mon édition. –