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

将Azure SQL DB的UTC时间转换为含夏令时的中欧本地时间

解决Azure SQL UTC时区转中欧夏令时时间问题

核心方案:使用AT TIME ZONE搭配正确的时区名称

Azure SQL的AT TIME ZONE函数内置了时区规则,无需手动判断夏令时切换日期。中欧对应的Windows时区名称为Central European Standard Time,这个时区会自动识别每年CET(冬令时)和CEST(夏令时)的切换时间,直接用它转换即可。

具体SQL写法

因为你的Azure SQL服务器处于UTC时区,GETDATE()和GETUTCDATE()返回的都是UTC时间,可通过以下两种方式转换为中欧本地时间:

  1. 从UTC时间直接转换:
GETUTCDATE() AT TIME ZONE 'UTC' AT TIME ZONE 'Central European Standard Time'
  1. 用带时区偏移的系统时间转换:
SYSDATETIMEOFFSET() AT TIME ZONE 'Central European Standard Time'

为什么之前的方法失效?

  • 用GETDATE()和GETUTCDATE()计算时差:服务器时区设为UTC时,这两个函数返回的时间完全一致,无法算出时差。
  • 误用AT TIME ZONE参数:如果之前直接指定'CET'或'CEST',这两个是具体时区偏移,不是带规则的时区名称,因此无法自动处理夏令时切换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:08:15