由于SQL Server对此不提供开箱即用的支持,因此您可以考虑编写一个使用.Net
TimeZoneInfo对象的.Net
dll存储过程,该对象考虑了包括DST在内的所有规则。此类允许您将时间也从一个区域转换为另一个区域。我希望这有帮助。
DateTime hwTime = new DateTime(2007, 02, 01, 08, 00, 00);try{ TimeZoneInfo hwZone = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time"); Console.WriteLine("{0} {1} is {2} local time.", hwTime, hwZone.IsDaylightSavingTime(hwTime) ? hwZone.DaylightName : hwZone.StandardName, TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local));}catch (TimeZoneNotFoundException){ Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.");} catch (InvalidTimeZoneException){ Console.WriteLine("Registry data on the Hawaiian STandard Time zone has been corrupted.");}


