2010-06-03 22 views
14

Tüm tarihlerimizi SQL Server 2008 veritabanını DateTime sütunlarında UTC saatinde saklarız. Rapor oluşturmak için SSRS kullanıyorum ve raporları her zaman raporun çalıştığı bilgisayarın Zaman Dilimine dönüştürmem gerekiyor.SSRS'de Zaman Dilimleriyle Çalışma

Geçerli saat dilimi ofsetini her zaman raporun bir parametresi olarak geçirebilir ve ofseti saat diliminden ekleyebilir veya çıkartabilir, ancak bu, gün ışığından tasarruf etmeden tarihi tarihleri ​​doğru göstermeyebilir.

SSRS'nin bunu işleyen işlevleri var mı? Saat dilimini SQL sunucu işlevlerine geçirmeli ve SQL Server'ın saati dönüştürmesini sağlamalı mıyım?

cevap

14

Bunu çözdüm. !

= Code.FromUTC (Fields UTCDateFromDatabase.Value, Parametreler: SSRS raporunda, ben montaja bir referans Ben kullanılan dilimini dönüştürmek için gerekli her yerde Sonra

System.Core ekledik! ! Parametreler TimeZone.Value

Herhalde FromUTC ne koymalıyız TimeZone.CurrentTimeZone.StandardName

kullanarak başvuruda alınabilir diliminin dize değeridir TimeZone.Value)

:

onun yerine bu kullanarak
Shared Function FromUTC(ByVal d As Date, ByVal tz As String) As Date 
Return (TimeZoneInfo.ConvertTimeBySystemTimeZoneId(d, TimeZoneInfo.Utc.Id, tz)) 
end function 
+0

yalnızca işlevini bunu bir kaç kez aradığını, bu iyi, ama her satır için işlevini aradığınız değilse. Büyük bir rapor için, her satır için işlevinizi çağırmak, ihracat performansını etkileyecektir. Maalesef bir alternatif bulamadım. – Kev

+0

@ClassyFedora - Özellikle SSRS değil, [bu yardımcı olabilir] (https://github.com/mj1856/SqlServerTimeZoneSupport) –

7

Dene: SSRS için

=System.TimeZone.CurrentTimeZone.ToLocalTime(Fields!DateTime.Value) 

AX 2012 çağrılan raporları, bu şimdiye kullandığınız yöntemdir.

Kredi bu yazı gider: http://social.msdn.microsoft.com/Forums/en-US/500448a3-bf58-44ab-8572-81becd67d8b8/convert-utc-time-to-local-time?forum=sqlreportingservices

+5

Bu gerçekten işe yarıyor mu? Raporlar sunucu tarafında oluşturulur. Bu, kullanıcının yerel saatine değil, yalnızca yerel sunucu saatine dönüşür. – m0n0ph0n

İlgili konular