Вот один из возможных способов достижения этого с помощью Custom code
в SSRS. В следующем примере не рассматриваются детали создания отчетов SSRS, но следует дать представление о том, как можно добиться форматирования времени в SSRS.
Пошаговый процесс:
Создайте таблицу с именем dbo.Timespans
, используя сценарий, указанный в SQL Scripts . Заполните его некоторыми данными, как показано на скриншоте # 1 .
Создайте отчет SSRS и используйте таблицу dbo.Timespans
в качестве источника данных. Смотрите скриншот # 2 .
Нажмите на меню Report
и выберите Report Properties
. Выберите вкладку Code
в левой части.
Вставьте код, указанный в разделе Пользовательский код SSRS в текстовом поле Пользовательский код. Нажмите ОК. Этот код принимает значение timeSpan
и строку format
. Затем он отформатирует данные времени и вернет их в виде строки. Смотрите скриншот # 3 .
Щелкните правой кнопкой мыши по столбцу времени и выберите Expression...
Вставьте выражение =Code.FormatTimeSpan(Fields!StartTime.Value, "hh:mm tt") + " - " +
Code.FormatTimeSpan(Fields!EndTime.Value, "hh:mm tt")
в текстовое поле Set expression for: Value
. Смотрите скриншоты # 4 и # 5 .
Снимок экрана # 6 показывает выполнение отчета.
Надеюсь, это поможет.
Сценарии SQL:
CREATE TABLE [dbo].[Timespans](
[Id] [int] IDENTITY(1,1) NOT NULL,
[StartTime] [time](7) NULL,
[EndTime] [time](7) NULL,
CONSTRAINT [PK_Timespans] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
GO
Код пользователя SSRS:
public function FormatTimeSpan(timeSpanValue as TimeSpan, format as string) as string
Dim dateValue as DateTime
dateValue = new DateTime(timeSpanValue.Ticks)
return dateValue.ToString(format)
end function
Снимок экрана № 1:
Снимок экрана № 2:
Скриншот № 3:
Снимок экрана № 4:
Снимок экрана № 5:
Снимок экрана № 6: