sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo convertir zonas horarias en SQL Server 2005?

Dado que SQL Server no proporciona soporte inmediato para esto, podría considerar escribir un procedimiento almacenado .Net dll, que haga uso de Objeto .Net TimeZoneInfo , este objeto tiene en cuenta todas las reglas, incluido el horario de verano. Esta clase también le permite convertir el tiempo de una zona a otra. Espero que esto ayude.

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.");
}

[Editar]

Tutorial Crear Simple Procedimiento almacenado .Net DLL.

Otro tutorial útil, tiene más detalles sobre la implementación.