En SQL Server me gustaría crear una tabla para save el time de un evento, y me gustaría convertirlo en la zona horaria de la elección de los usuarios para fines de visualización. Digamos que si hubiera un evento que ocurriera en Londres a la 1:00 PM GMT, eso sería a las 8:00 a.m. ES EST.
Dado este ejemplo, me gustaría crear un trabajo de marco,
donde un usuario tendría la capacidad de save el evento y la hora (dando la zona horaria del evento)
Lea esos events, con la hora que se muestra en la zona horaria de su agrado (US EST)
¿Cómo logro esto en SQL Server?
En SQL Server 2008, use el tipo de datos DATETIMEOFFSET que es DATETIME más un desplazamiento de zona horaria incluido.
SELECT CAST('2010-11-23 16:35:29+09:00' AS datetimeoffset)
sería el 23 de noviembre de 2010, a las 4:35 p.m. en una zona horaria de +9 horas (desde GMT).
SQL Server 2008 también contiene funciones y commands SQL para convertir los valores de DATETIMEOFFSET
de una zona horaria a otra:
SELECT SWITCHOFFSET(CAST('2010-11-23 16:35:29+09:00' AS datetimeoffset), '+01:00')
daría como resultado:
2010-11-23 08:35:29.0000000 +01:00
La misma hora, diferente zona horaria (+1 hora desde GMT)
DateTime.UtcNow
) La forma en que he resuelto un problema similar es hacer lo siguiente: