Jam*_*egs 16 datetime datetimeoffset ssrs-2008
我们将所有日期SQL Server 2008数据库以UTC时间存储在DateTime列中.我正在使用SSRS创建报告,我需要将报告上的所有时间转换为运行报告的计算机的时区.
我知道总是可以将当前时区偏移量作为参数传递给报告,并添加或减去时区的偏移量,但由于夏令时,这不能正确显示历史日期.
SSRS是否有任何处理此功能的功能?我应该将时区传递给SQL服务器函数并让SQL Server转换时间吗?
Jam*_*egs 14
我想到了.在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
Run Code Online (Sandbox Code Playgroud)
小智 9
请尝试使用此代码:
=System.TimeZone.CurrentTimeZone.ToLocalTime(Fields!DateTime.Value)
Run Code Online (Sandbox Code Playgroud)
对于从AX 2012调用的SSRS报告,这是我使用的.
感谢这篇文章:http://social.msdn.microsoft.com/Forums/en-US/500448a3-bf58-44ab-8572-81becd67d8b8/convert-utc-time-to-local-time?forum=sqlreportingservices
| 归档时间: |
|
| 查看次数: |
28222 次 |
| 最近记录: |