【发布时间】:2021-04-11 22:47:01
【问题描述】:
我在 SQL Server 数据库中保存了一个时区名称,例如 America/Vancouver。
我想从 SQL 中的时区名称中获取 UTC 偏移量,例如 America/Vancouver 有 -08:00 偏移量。那么如何在 SQL 中编写查询呢?
非常感谢您的帮助
【问题讨论】:
-
UTC 偏移量在什么时刻?美国/温哥华在 UTC-7 和 UTC-8 之间变化。这是一个相对简单的情况,因为据我所知,它永远具有相同的 标准 时间......但是例如,继续“永久夏令时”的时区呢? (这就是未来几年欧盟很多国家可能会做的事情......所以欧洲/巴黎目前在 UTC+1 和 UTC+2 之间变化,但未来可能会永久为 UTC+2。)
-
@JonSkeet 我需要你提到的夏令时偏移量,基本上,我在 SQL 表中有一个用户可用时间为 12:00 到 04:00,用户时区在
America/Vancouver所以我必须检查工作 UTC 时间和工作人员的可用时间,所以我需要将 UTC 时间转换为工作人员时区并比较时隙 -
当您说“工作 UTC 时间”时 - 您已经将其作为特定值了吗?所以问题实际上是“如何使用 IANA 时区 ID 将特定时刻转换为时区?” (最好编辑问题以明确这一点。)我不知道 SQL Server 是否 any 直接支持 IANA 时区 - 您可能需要从 IANA 时区 ID 转换首先进入 Windows 时区 ID,此时您可以使用“AT TIME ZONE”。
-
您已标记 SQL Server 2005 和 21008 - 您使用的是哪个?
标签: sql-server sql-server-2008 sql-server-2005 timezone timezone-offset