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真题
