You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何将带时区偏移的时间转换为无偏移的本地时间

实现方案

以下是基于SQL Server语法的简洁实现方式,完全不需要手动解析字符串或拆分日期部分:

场景1:将带偏移的太平洋时间转换为UTC时间(无偏移)

对应你给出的转换需求,直接叠加AT TIME ZONE 'UTC'即可实现:

SELECT GETDATE() AT TIME ZONE 'Pacific Standard Time' AT TIME ZONE 'UTC'

原理:第一次AT TIME ZONE得到带偏移的datetimeoffset类型太平洋时间,第二次AT TIME ZONE 'UTC'会自动将该时间转换为UTC时区的datetime2类型,自动完成偏移计算且无额外偏移后缀。
也可以用SWITCHOFFSET函数实现相同效果:

SELECT CAST(SWITCHOFFSET(GETDATE() AT TIME ZONE 'Pacific Standard Time', '+00:00') AS datetime2)

场景2:仅移除偏移后缀,保留太平洋本地时间

如果你不需要转UTC,只是想去掉偏移部分、保留加利福尼亚当地的时间数值,直接强转类型即可:

SELECT CAST(GETDATE() AT TIME ZONE 'Pacific Standard Time' AS datetime2)

该写法会直接提取datetimeoffset类型中的本地时间部分,输出无偏移的日期时间值。

以上两种方法均为SQL Server原生支持的语法,不需要额外自定义函数或字符串处理,性能和兼容性都有保障。

内容的提问来源于stack exchange,提问作者bvy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:36:03