Ниже приведено то, что я собрал, но я хотел посмотреть, какие еще способы доступны.
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) +')'
Выходные данные: 2014-10-14 16: 22: 21.037 (CST)
sql-server
timezone
Самсон Дж. Лу
источник
источник
Ответы:
Чтение ключа reg с помощью этого или SQLCLR - единственный верный способ, который я знаю (лично я создал бы задание, которое обновляет таблицу вместо включения xp_regread.).
Этот скрипт powershell является примером того, как обновить таблицу конфигурации этой информацией.
Все другие системы со смещением и т. Д. Дают неверные результаты.
источник