Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come convertire i fusi orari in SQL Server 2005?

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.