我有一些 sql server 报告 - .rdl 文件,我想在其中添加自定义代码来进行一些时区转换。经过一番谷歌搜索,我发现我可以在 Visual Basic 中编写自定义代码。是否有任何其他支持编写自定义代码的语言?像java?
我不知道 VB 在 VB 中编写代码。报告中的自定义代码是否支持 java?
我有一些 sql server 报告 - .rdl 文件,我想在其中添加自定义代码来进行一些时区转换。经过一番谷歌搜索,我发现我可以在 Visual Basic 中编写自定义代码。是否有任何其他支持编写自定义代码的语言?像java?
我不知道 VB 在 VB 中编写代码。报告中的自定义代码是否支持 java?
在不了解 VB.Net 的情况下,您的问题很容易解决 :),您可以使用此功能进行转换(它将没有时区 (+00) 的时间通过 id 转换为给定时区):
Shared Function ConvertServerTimeNow(ByVal systemDate As Date, ByVal timeZoneId As String, Optional ByVal daylightSavingsTime As Boolean = False) As Date
Dim timeZoneInfo As TimeZoneInfo
If timeZoneId Is Nothing Then
Return systemDate
Else
timeZoneInfo = timeZoneInfo.FindSystemTimeZoneById(timeZoneId)
If daylightSavingsTime = False Then
timeZoneInfo = timeZoneInfo.CreateCustomTimeZone(timeZoneInfo.Id, timeZoneInfo.BaseUtcOffset, timeZoneInfo.DisplayName, timeZoneInfo.StandardName, timeZoneInfo.DaylightName, Nothing, True)
End If
End If
Return (timeZoneInfo.ConvertTime(systemDate, timeZoneInfo))
End Function
关于 TimeZoneID 列表可以参考这个答案:https ://stackoverflow.com/a/7908482/1048105
关于其他语言:您可以通过添加自定义程序集来使用 .NET 平台上的任何语言,但您不能在 rdl 中以除 VB.NET 之外的其他语言编写代码。关于自定义程序集,您可以在此处阅读http://support.microsoft.com/kb/920769,但很难部署它,我不建议在没有必要的情况下这样做。