跳到主要内容

convert_timezone:时区转换

速查结论

convert_timezone([sourceTz, ]targetTz, sourceTs) 是 Spark SQL 中用于将不带时区的时间戳从源时区转换为目标时区的函数。

语法

convert_timezone([sourceTz, ]targetTz, sourceTs)

参数说明

参数说明
sourceTz输入时间戳的时区。如果省略,将使用当前会话的时区作为源时区。
targetTz输入时间戳应该转换到的目标时区。
sourceTs一个不带时区的时间戳。

Examples

> SELECT convert_timezone('Europe/Brussels', 'America/Los_Angeles', timestamp_ntz'2021-12-06 00:00:00');
2021-12-05 15:00:00
> SELECT convert_timezone('Europe/Brussels', timestamp_ntz'2021-12-05 15:00:00');
2021-12-06 00:00:00

常见报错与避坑指南

  • 时区字符串无效:传入无法识别的时区字符串会导致报错,请确保使用标准的 IANA 时区标识符(如 'Asia/Shanghai''America/Los_Angeles')。
  • 省略 sourceTz 时的行为:当省略源时区参数时,函数使用当前会话时区作为源时区,若会话时区未正确设置,可能导致意外结果,建议显式传入源时区。

Since: 3.4.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看