Azure SQL 将“时区显示名称”转换为“时区 ID”

问题描述

我正在使用最新版本的 Azure SQL。我有一系列 Time zone display name 并想将它们转换为 Time zone ID。我知道 SQL Server 包含显示名称和 ID。 sys.time_zone_info 具有所有的 Time zone ID,但像 CURRENT_TIMEZONE () 输出 Time zone display name 这样的命令。我希望的是一个简单的函数,它接受一个字符串 Time zone display name 并返回名称映射到的 Time zone ID,但我找不到任何对此的引用。而且我找不到实际存储映射的表。

参考 - Time zones in Azure SQL Managed Instance

解决方法

sys.time_zone_info中,名称​​是 ID。不是最适合标准化目的。

如果您使用它来为您的应用程序创建自己的内部时区列表,那么我认为 Joseph Xu 的答案是正确的。

如果您使用它来查询需要时区本地化的 Azure SQL,请记住,根据 Azure SQL 文档,数据库在 UTC 中运行,并且 CURRENT_TIMEZONE_ID() 将返回 {{1} } 总是。

,

我认为我们可以创建一个表来存储具有两列 Time zone IDTime zone display name 的信息。然后创建一个存储过程来查询,输入Time zone display name return Time zone ID

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...