SQL Serverレポートサービスフォーマット時間としての時間:議事録

StackOverflow https://stackoverflow.com/questions/2884919

  •  04-10-2019
  •  | 
  •  

質問

SQL Server Reporting Serverにレポートを書いています。たとえば、ユーザーによってグループ化され、値の合計に基づいて計算された合計でグループ化されています。

現在、私のクエリは、ユーザーがより直感的であると思うように、小数点以下ではなく、HH:MM形式のように時間を返す保存されたProcを実行します。問題は、SSRS式を使用して列を合計するときに発生します。なぜなら、合計関数は、この形式での追加時間を処理するほどスマートではないからです。

何らかの方法はありますか:

  1. 10進形式で計算しながら、HH:MM形式で時間間隔(数分または時間)を表示しますか?
  2. または、HH:MMテキスト値の合計を分割して計算して、式として合計に到達しますか?

合計を取得するためだけに2回目のクエリを書く/実行する必要を避けたいと思います。

役に立ちましたか?

解決

自分の#1に答える:

  1. クエリを数分間返してください( TimeSpent 下)。
  2. テキストボックスの形式をまだ「一般」に設定していない場合は
  3. 次の式を値として使用します。=FLOOR(Fields!TimeSpent.Value / 60) & ":" & RIGHT("0" & (Fields!TimeSpent.Value MOD 60), 2)
  4. 合計テキストボックスには、次の式を使用します。 =FLOOR(Sum(Fields!TimeSpent.Value) / 60) & ":" & RIGHT("0" & (Sum(Fields!TimeSpent.Value) MOD 60), 2)

他のヒント

また、この関数をレポートのカスタムコードに配置してみてください。

Function secondsToString(seconds As int64) As String
Dim myTS As New TimeSpan(seconds * 10000000)
Return String.Format("{0:00}:{1:00}:{2:00}",myTS.Hours, myTS.Minutes, myTS.Seconds)
End Function

私のSPSは通常、数秒で時間を返します。これにより、HH:MM:SSを複数の場所で返却する必要がある場合、あまりにも一生懸命に考える必要がありません。さらに、すべての集約を正常に行い、これにラップして、きれいな形式を取得できます。

しばらく前にウェブ上でつまずいたことがわかっているので、私はこれを信用することはできませんが、どこで思い出せません。

したがって、あなたの場合はその議事録で秒に変換する必要があります。以下のコードを使用してみることができます。

= format(dateadd( "s"、(parameters!reportparameter1.value * 60)、 "00:00:00")、 "HH:MM:SS")

お役に立てれば

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top