Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie konvertiere ich Zeitzonen in SQL Server 2005?

Da SQL Server hierfür keine standardmäßige Unterstützung bietet, könnten Sie erwägen, eine gespeicherte .NET-DLL-Prozedur zu schreiben, die den .Net TimeZoneInfo-Objekt , berücksichtigt dieses Objekt alle Regeln einschließlich DST. Mit dieser Klasse können Sie auch die Zeit von einer Zone in eine andere umrechnen. Ich hoffe, das hilft.

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

[Bearbeiten]

Tutorial Einfache Erstellung .Net DLL gespeicherte Prozedur.

Ein weiteres nützliches Tutorial mit mehr Details zur Bereitstellung.