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

如何在Azure Stream Analytics作业中修改时区?将System.Timestamp转为BST

在Azure Stream Analytics中转换System.Timestamp到BST时区

你好!Azure Stream Analytics的System.Timestamp()本身是固定使用UTC时区的,没法直接修改作业级别的时区设置,但完全可以通过SQL查询把它转换为BST(英国夏令时)时间,下面两种方法可以帮你实现:

基础转换(固定+1小时)

如果只需要简单将UTC转成BST(暂时不考虑夏令时切换的场景),直接使用DATEADD函数给UTC时间加1小时即可,示例查询如下:

SELECT
  DATEADD(hour, 1, System.Timestamp()) AS BST_Timestamp,
  -- 替换成你的其他业务字段
  *
INTO
  [你的输出目标]
FROM
  [你的输入源]

自动适配夏令时的转换

BST是英国夏令时,每年的3月最后一个周日到10月最后一个周日生效(其余时间为GMT,和UTC时间一致)。如果需要自动适配这个时间切换规则,可以用CASE语句结合日期函数来判断,示例如下:

SELECT
  CASE
    -- 判断当前时间是否处于英国夏令时区间内
    WHEN DATEPART(month, System.Timestamp()) BETWEEN 3 AND 10
         -- 匹配三月最后一个周日
         AND System.Timestamp() >= DATEADD(day, -DATEPART(weekday, DATEFROMPARTS(DATEPART(year, System.Timestamp()), 3, 26)) + 1, DATEFROMPARTS(DATEPART(year, System.Timestamp()), 3, 26))
         -- 匹配十月最后一个周日
         AND System.Timestamp() <= DATEADD(day, -DATEPART(weekday, DATEFROMPARTS(DATEPART(year, System.Timestamp()), 10, 25)) + 1, DATEFROMPARTS(DATEPART(year, System.Timestamp()), 10, 25))
    THEN DATEADD(hour, 1, System.Timestamp())
    ELSE System.Timestamp() -- 非夏令时直接使用UTC(与GMT一致)
  END AS UK_Local_Timestamp,
  -- 替换成你的其他业务字段
  *
INTO
  [你的输出目标]
FROM
  [你的输入源]

这个查询会自动根据当前时间是否处于夏令时区间,动态调整时区偏移,确保得到的是准确的英国本地时间。

简单总结:作业本身的System.Timestamp无法修改时区,但通过SQL转换完全可以得到你需要的BST时间~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:41:14