如何解决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 ID
和 Time zone display name
的信息。然后创建一个存储过程来查询,输入Time zone display name
return Time zone ID
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。