跳到主要内容

to_timestamp:字符串转时间戳

速查结论

to_timestamp(timestamp_str[, fmt]) 是 Spark SQL 中用于将字符串解析为时间戳类型的函数。

语法

to_timestamp(timestamp_str[, fmt])

参数说明

参数说明
timestamp_str要解析为时间戳的字符串
fmt可选,时间戳格式模式。请参阅日期时间模式以获取有效的日期和时间格式模式。若不指定,则按默认规则解析

to_timestamp(timestamp_str[, fmt]) - 使用fmt表达式解析timestamp_str表达式到时间戳。如果输入无效,则返回null。如果省略了fmt,默认情况下,它遵循将字符串转换为时间戳的规则。结果数据类型与配置spark.sql.timestampType的值一致。

Examples:

> SELECT to_timestamp('2016-12-31 00:12:00');
2016-12-31 00:12:00
> SELECT to_timestamp('2016-12-31', 'yyyy-MM-dd');
2016-12-31 00:00:00

常见报错与避坑指南

  • 结果类型受配置影响to_timestamp() 返回的时间戳类型取决于 spark.sql.timestampType 配置(默认为 TIMESTAMP_NTZ)。若需要明确类型,请使用 to_timestamp_ltz()to_timestamp_ntz()
  • 格式不匹配静默返回 NULL:与 to_date() 类似,fmt 不匹配时返回 NULL 而非报错。建议始终显式指定 fmt 并确保格式一致。
  • 缺少时间部分时的默认值:当 fmt 中不包含时间部分时(如 'yyyy-MM-dd'),函数自动将时间补全为 00:00:00

Since: 2.2.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看