A continuación se muestra lo que reconstruí, pero quería ver qué otras formas hay disponibles.
SET NOCOUNT ON;
GO
DECLARE @tz VARCHAR(50)
EXEC [master].[dbo].[xp_regread]
'HKEY_LOCAL_MACHINE'
,'SYSTEM\CurrentControlSet\Control\TimeZoneInformation'
,'TimeZoneKeyName'
,@tz OUT;
SELECT
GETDATE()
,'(' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),3),1)
+ '' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),2),1)
+ '' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),1),1) +')'
Salida: 2014-10-14 16: 22: 21.037 (CST)
sql-server
timezone
Samson J. Loo
fuente
fuente
Respuestas:
Leer la clave de registro con esto o SQLCLR es la única forma correcta que conozco (aunque personalmente crearía un trabajo que actualiza una tabla en lugar de habilitar xp_regread).
Este script de PowerShell es un ejemplo de cómo actualizar una tabla de configuración con esta información.
Todos los demás sistemas con desplazamiento, etc., están dando resultados incorrectos.
fuente