Abaixo está o que eu montei, mas eu queria ver que outras maneiras estão disponíveis.
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) +')'
Saída: 2014-10-14 16: 22: 21.037 (CST)
sql-server
timezone
Samson J. Loo
fonte
fonte
Respostas:
Ler a chave reg com isso ou SQLCLR é a única maneira correta que eu conheço (eu pessoalmente criaria um trabalho que atualiza uma tabela em vez de ativar xp_regread.).
Este script do PowerShell é um exemplo de como atualizar uma tabela de configuração com essas informações.
Todos os outros sistemas com deslocamento etc estão apresentando resultados incorretos.
fonte