如何为Windows注册表配置单元添加UTC-07时区?
如何在Windows注册表中添加UTC-07时区以支持SQL Server的
AT TIME ZONE函数 SQL Server的AT TIME ZONE函数仅支持Windows注册表中已安装的时区,对应注册表路径为HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones。以下是添加UTC-07时区的可行步骤:
步骤1:创建注册表导入文件
新建一个文本文件,命名为UTC-07.reg,将以下内容复制进去:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\UTC-07] "Display"="(UTC-07:00) Coordinated Universal Time-07" "Dlt"="UTC-07 Daylight Time" "MUI_Display"="@tzres.dll,-250" "MUI_Dlt"="@tzres.dll,-251" "MUI_Std"="@tzres.dll,-252" "Std"="UTC-07 Standard Time" "Index"=dword:000000d2 "TZI"=hex:00,00,00,00,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
说明:上述配置为无夏令时的固定UTC-07偏移时区,若需要支持夏令时,可参考Windows内置时区(如Mountain Standard Time)的注册表结构修改
TZI值和对应名称字段。
步骤2:导入注册表项
- 右键点击
UTC-07.reg文件,选择「合并」 - 弹出权限确认对话框时,点击「是」完成导入(需管理员权限)
步骤3:验证配置
系统层面验证
打开命令提示符,执行以下命令查看已安装时区列表:
tzutil /l
检查输出中是否存在(UTC-07:00) Coordinated Universal Time-07条目。
SQL Server层面验证
在SQL Server中执行以下测试语句:
SELECT GETDATE() AT TIME ZONE 'UTC-07' AS [LocalTime_In_UTC07];
若返回正确的时区转换结果,说明配置生效。
注意事项
- 需以管理员身份操作注册表,否则会因权限不足导致导入失败
- 若SQL Server部署在集群环境,需在所有节点上执行上述操作
- 修改注册表后无需重启SQL Server即可生效,但建议重启服务器确保系统时区服务刷新
内容的提问来源于stack exchange,提问作者Carlos Bojorquez
相关产品推荐
相关产品推荐

