Поскольку SQL Server не предоставляет встроенную поддержку для этого, вы можете рассмотреть возможность написания хранимой процедуры .Net dll, которая использует объект .Net TimeZoneInfo , этот объект принимает все правила в том числе 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.");
}
[Изменить]
Учебное пособие по созданию простой хранимой процедуры .Net DLL.
Еще один полезный учебник, в котором более подробно рассказывается о развертывании.