La clase .ZEL TimeZoneInfo es excelente y pensé que respondería a todos mis problemas con la grabación de datos de múltiples zonas horarias en mi base de datos SQL 2005.Acceda a TimeZoneInfo desde SQL 2005 Server
Para convertir una hora UTC en la base de datos a cualquier otra zona horaria, solo obtendría la zona horaria en una clase TimeZoneInfo utilizando TimeZoneInfo.FindSystemTimeZoneById() y luego llamaría TimeZoneInfo.ConvertTimeFromUtc(). ¡Brillante! ¡Llamaré esto desde SQL .NET CLR!
PERO ... TimeZoneInfo tiene un atributo de protección de host de MayLeakOnAbort.
Cuando uso VS 2008 para crear una función de SQL o un procedimiento almacenado, no puedo ni siquiera ver la clase system.TimeZoneInfo no importa lo utilizan. También estoy asumiendo que incluso si pudiera hacer referencia de alguna manera a la clase TimeZoneInfo, probablemente obtendría algún tipo de excepción de seguridad si intenté registrar el ensamblado en SQL Sever 2005.
¡Ayuda! ¿Hay alguna forma de acceder a la clase TimeZoneInfo y todas sus riquezas desde SQL Server 2005?
NB: Me acaba de añadir esta advertencia después de la primera respuesta:
Tenemos sitios en diferentes lugares alrededor del mundo. Necesitamos almacenar la hora local y la hora UTC en la base de datos contra eventos que pueden requerir tendencias en el nivel del sitio. Una tendencia puede consistir en más de 52,000 puntos de datos durante un año, por lo tanto, para mayor eficiencia, no puedo simplemente almacenar los tiempos en UTC en la base de datos y convertir cada punto de datos en el cliente. Por lo tanto, necesito la capacidad, dentro del DB para convertir una hora local en cualquier zona horaria desde y hacia la hora UTC.
¿Qué almacena realmente en la base de datos? ¿Está almacenando el hecho de que esta información se registró a las "3 p.m. en Francia", o está almacenando el hecho de que se registró a las 2 p. UTC? Si es el primero, puede almacenar el desfase horario local en otra columna –
. Necesito registrar tanto el UTC como la hora local. Los informes del sitio generalmente se solicitarán en tiempo local, los informes de toda la empresa se solicitarán en tiempo UTC. A pesar de todo, todavía necesito la capacidad, a nivel de base de datos, para determinar cuál es el desplazamiento local o el tiempo. El usuario que ingresa puede estar en cualquier zona horaria. – user74207