Работа с часовыми поясами в SSRS

Мы храним всю нашу базу данных SQL Server 2008 дат во время UTC в столбцах DateTime. Я использую SSRS для создания отчетов, и я должен преобразовать все времена на отчетах Часовому поясу компьютера, откуда они выполняют отчет.

Я знаю, мог всегда просто передавать в текущем смещении часового пояса в качестве параметра к отчету и добавлять или вычитать смещение из часового пояса, но это правильно не покажет исторические даты из-за перехода на летнее время.

SSRS имеет какие-либо функции, которые обрабатывают это? Я должен передать часовой пояс функциям SQL-сервера и иметь SQL Server, преобразовывают время?

16
задан Jamiegs 3 June 2010 в 20:53
поделиться

1 ответ

Я разобрался с этим. В отчете SSRS я добавил ссылку на сборку System.Core

Затем везде, где мне нужно было преобразовать часовой пояс, я использовал:

=Code.FromUTC(Fields!UTCDateFromDatabase.Value, Parameters!TimeZone.Value)

где Parameters!TimeZone.Value - это строковое значение часового пояса, которое можно получить в приложении с помощью TimeZone.CurrentTimeZone.StandardName

Наверное, я должен поставить то, что делает FromUTC:

Shared Function FromUTC(ByVal d As Date, ByVal tz As String) As Date
 Return (TimeZoneInfo.ConvertTimeBySystemTimeZoneId(d, TimeZoneInfo.Utc.Id, tz))
end function
14
ответ дан 30 November 2019 в 21:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: