दो टेबल बनाएं और फिर उनसे जुड़ें ताकि संग्रहीत जीएमटी तिथियों को स्थानीय समय में परिवर्तित किया जा सके:
TimeZones e.g.
--------- ----
TimeZoneId 19
Name Eastern (GMT -5)
Offset -5
दिन के उजाले की बचत तालिका बनाएं और इसे अधिक से अधिक जानकारी के साथ भरें (स्थानीय कानून हर समय बदलते हैं इसलिए यह अनुमान लगाने का कोई तरीका नहीं है कि भविष्य में डेटा कैसा दिखेगा)
DaylightSavings
---------------
TimeZoneId 19
BeginDst 3/9/2008 2:00 AM
EndDst 11/2/2008 2:00 AM
उनसे इस तरह जुड़ें:
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
तारीखों को इस तरह बदलें:
dateadd(hh, tz.Offset +
case when ds.LocalTimeZone is not null
then 1 else 0 end, TheDateToConvert)