to_timestamp_ltz:转本地时区时间戳
速查结论
to_timestamp_ltz(timestamp_str[, fmt]) 是 Spark SQL 中用于**将字符串解析为带本地时区的时间戳(TIMESTAMP_LTZ)**的函数。
语法
to_timestamp_ltz(timestamp_str[, fmt])
参数说明
| 参数 | 说明 |
|---|---|
| timestamp_str | 要解析为带本地时区时间戳的字符串 |
| fmt | 可选,时间戳格式模式。请参阅日期时间模式以获取有效的日期和时间格式模式。若不指定,则按默认规则解析 |
to_timestamp_ltz(timestamp_str[, fmt]) - 使用fmt表达式解析timestamp_str表达式到带有本地时区的时间戳。如果输入无效,则返回null。如果省略了fmt,默认情况下,它遵循将字符串转换为带有本地时区的时间戳的规则。
Examples:
> SELECT to_timestamp_ltz('2016-12-31 00:12:00');
2016-12-31 00:12:00
> SELECT to_timestamp_ltz('2016-12-31', 'yyyy-MM-dd');
2016-12-31 00:00:00
常见报错与避坑指南
- 与 to_timestamp 的区别:
to_timestamp_ltz()明确返回TIMESTAMP_LTZ类型(本地时区),而to_timestamp()的结果类型取决于spark.sql.timestampType配置。在跨时区业务中推荐使用此函数以获得确定的行为。 - 格式不匹配:fmt 与 timestamp_str 不匹配时,函数返回 NULL 而非抛出异常。建议始终显式指定 fmt。
Since: 3.4.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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