Maak twee tabellen en voeg ze vervolgens toe om opgeslagen GMT-datums om te zetten naar lokale tijd:
TimeZones e.g.
--------- ----
TimeZoneId 19
Name Eastern (GMT -5)
Offset -5
Maak de zomertijdtabel en vul deze met zoveel mogelijk informatie (lokale wetten veranderen voortdurend, dus het is niet te voorspellen hoe de gegevens er in de toekomst uit zullen zien)
DaylightSavings
---------------
TimeZoneId 19
BeginDst 3/9/2008 2:00 AM
EndDst 11/2/2008 2:00 AM
Sluit je als volgt bij hen aan:
inner join TimeZones tz on x.TimeZoneId=tz.TimeZoneId
left join DaylightSavings ds on tz.TimeZoneId=ds.LocalTimeZone
and x.TheDateToConvert between ds.BeginDst and ds.EndDst
Converteer datums als volgt:
dateadd(hh, tz.Offset +
case when ds.LocalTimeZone is not null
then 1 else 0 end, TheDateToConvert)