0

SSRSでレポートを作成しています。

デザインモードでは、次のようになります。

ここに画像の説明を入力

tat2値は 1 ~ 192 で、次のようにレポートに表示されます。

1
2
3
...
192

代わりに次のようなことを行う方法があるかどうかを知りたいです。

DAY 1 12:00AM
DAY 1 1:00AM
DAY 1 2:00AM
...
DAY 7 9:00PM
...
DAY 8 12:00AM

つまり、1 から 192 までの数字を時間と日に変換したいと思います。

4

2 に答える 2

3

これにはDate.AddHours()を使用できます-任意の年の始まりである新しい日付を作成して使用するだけです

Date.AddHours(Fields!YourNumericField.Value)

このようにして、ローリング時間を取得します-192を超えることはありますか?これは365でロールオーバーするため、最大範囲はどれくらいですか。次のように、組み合わせて一致させ、式を実行することができます。

=Math.Ceiling(Fields!YourNumericField.Value / 24) & SomeDate.AddHours(Fields!YourNumericField.Value)

そんな感じ

私はこのマシンにテストするSSRSを持っていません:P

編集:

さて、基準日を取得するには、新しいDateTime(年、月、日)を使用できます

http://msdn.microsoft.com/en-us/library/system.datetime.aspx

だから式

="DAY " & Math.Ceiling(Fields!tat2.Value / 24) & " " & format(new DateTime(2000, 1, 1).AddHours(Fields!tat2.Value), "hh:mm tt")

これは次のようになります。

DAY 1 10:45 AM

動作するはずです-午前10時のビットの形式を変更する場合は、次のリファレンスを確認してください。

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

「HH:mm」は24時間+分(例:23:54)を提供します

「hh:mmtt」は12時間です(例:12:00 PM)

遊びましょう

于 2012-06-29T21:54:18.647 に答える
1

これは、基になるクエリで簡単に実行できます-SSRSで実行するかどうかはわかりません:

SELECT 
  Tat2 / 24 + 1 as Day, 
  CAST(Tat2 % 24 AS CHAR(2)) + ':00 ' +
    CASE WHEN Tat2 % 24 > 12 then 'PM' else 'AM' end as AMPM
FROM YourTable

もちろん、これは 365 日を超えて処理することはできません。月や年ではないからです。

于 2012-06-29T21:56:05.960 に答える