Poiché SQL Server non fornisce supporto immediato per questo, potresti prendere in considerazione la possibilità di scrivere una stored procedure .Net dll, che fa uso di Oggetto .Net TimeZoneInfo , questo oggetto prende in considerazione tutte le regole, inclusa l'ora legale. Questa classe ti consente anche di convertire l'ora da una zona all'altra. Spero che questo aiuti.
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.");
}
[Modifica]
Tutorial Creazione semplice Procedura memorizzata .Net DLL.
Un altro utile tutorial, con maggiori dettagli sulla distribuzione.